欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java解決刪除字符使頻率相同問題

 更新時間:2024年02月18日 09:20:03   作者:宣布無人罪  
給你一個下標從0開始的字符串 word ,字符串只包含小寫英文字母,你需要選擇一個下標并刪除下標處的字符,使得word中剩余每個字母出現(xiàn)頻率相同,本文給大家介紹了Java解決刪除字符使頻率相同問題,需要的朋友可以參考下

Java解決刪除字符使頻率相同問題

01 題目

給你一個下標從 0 開始的字符串 word ,字符串只包含小寫英文字母。你需要選擇 一個 下標并 刪除 下標處的字符,使得 word 中剩余每個字母出現(xiàn) 頻率 相同。

如果刪除一個字母后,word 中剩余所有字母的出現(xiàn)頻率都相同,那么返回 true ,否則返回 false 。

注意:

  • 字母 x 的 頻率 是這個字母在字符串中出現(xiàn)的次數(shù)。
  • 你 必須 恰好刪除一個字母,不能一個字母都不刪除。

示例 1:

輸入:word = "abcc"
輸出:true
解釋:選擇下標 3 并刪除該字母:word 變成 "abc" 且每個字母出現(xiàn)頻率都為 1 。

示例 2:

輸入:word = "aazz"
輸出:false
解釋:我們必須刪除一個字母,所以要么 "a" 的頻率變?yōu)?1 且 "z" 的頻率為 2 ,要么兩個字母頻率反過來。所以不可能讓剩余所有字母出現(xiàn)頻率相同。

提示:

  • 2 <= word.length <= 100
  • word 只包含小寫英文字母。

02 知識點

  • 雙重循環(huán)
  • 哈希表set

03 我的解題思路

public class shuzu02 {
	public static void main(String[] args) {
//		測試數(shù)據(jù)
		String word = "aazz";
		System.out.println(equalFrequency(word));
		
	}
	 public static boolean equalFrequency(String word) {
//		 先循環(huán)整個字符串,并記錄每個字符出現(xiàn)的頻率
		 char[] chars=word.toCharArray();
		 int[] nums=new int[26]; 
		 for (int i = 0; i < chars.length; i++) {
			nums[chars[i]-'a']++;
		}
//		 雙重循環(huán)整個頻率記錄數(shù)組,思路是找到題設(shè)的題解(即字符只有兩種頻率,頻率高的字符需且僅需減一就等于頻率低的字符頻率)
		for (int i = 0; i < 26; i++) {
//			遍歷整個數(shù)組,頻率為零則直接重新循環(huán),字符串長度大于等于2,只有字符串長度等于1時符合題設(shè)
			if (nums[i]==0) {
				continue;
			}
//			頻率高的字符需且僅需減一,減一后若符合題解,整個數(shù)組頻率相同
			nums[i]--;
			HashSet<Integer> setsHashSet=new HashSet<Integer>();
//			再次循環(huán)整個數(shù)組,利用HashSet內(nèi)元素不重復(fù)的特點
			for (int j = 0; j < 26; j++) {
				if (nums[j]>0) {
					setsHashSet.add(nums[j]);
				}
			}
//			若HashSet內(nèi)元素數(shù)量為1,則整個數(shù)組頻率相同,符合題設(shè)
			if (setsHashSet.size()==1) {
				return true;
			}
//			不符合題設(shè)要把值改回原來,繼續(xù)循環(huán)
			nums[i]++;	
		}
//		循環(huán)后找不到符合題解,符合false
		 return false;
	    }
}

到此這篇關(guān)于Java解決刪除字符使頻率相同問題的文章就介紹到這了,更多相關(guān)Java刪除字符頻率相同內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 手把手教你排查解決Java編譯報錯:找不到符號

    手把手教你排查解決Java編譯報錯:找不到符號

    這篇文章主要介紹了手把手教你排查解決Java編譯報錯:找不到符號的相關(guān)資料,提供了排查步驟和解決方法,通過這些步驟,開發(fā)者可以有效地找到并解決編譯器拋出的找不到符號錯誤,從而提高開發(fā)效率,需要的朋友可以參考下
    2025-04-04
  • Java中的線程中斷機制和LockSupport詳解

    Java中的線程中斷機制和LockSupport詳解

    這篇文章主要介紹了Java中的線程中斷機制和LockSupport詳解,在Java中沒有辦法立即停止一條線程,然而停止線程卻顯得尤為重要,如取消一個耗時操作,因此,Java提供了一種用于停止線程的協(xié)商機制中斷,也即中斷標識協(xié)商機制,需要的朋友可以參考下
    2023-09-09
  • spring的TransactionSynchronizationAdapter事務(wù)源碼解析

    spring的TransactionSynchronizationAdapter事務(wù)源碼解析

    這篇文章主要介紹了spring的TransactionSynchronizationAdapter事務(wù)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • java使用OpenCV從視頻文件中獲取幀

    java使用OpenCV從視頻文件中獲取幀

    這篇文章主要為大家詳細介紹了java使用OpenCV從視頻文件中獲取幀,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Java利用POI讀取、寫入Excel的方法指南

    Java利用POI讀取、寫入Excel的方法指南

    這篇文章主要給大家介紹了關(guān)于Java利用POI讀取、寫入Excel的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java中BufferedReader和BufferedWriter使用方式

    Java中BufferedReader和BufferedWriter使用方式

    這篇文章主要介紹了Java中BufferedReader和BufferedWriter使用方式,F(xiàn)ileWriter?類從?OutputStreamWriter?類繼承而來,BufferedReader?類從字符輸入流中讀取文本并緩沖字符,以便有效地讀取字符,數(shù)組和行
    2022-06-06
  • idea2020.1最新版永久破解/pycharm也可用(步驟詳解)

    idea2020.1最新版永久破解/pycharm也可用(步驟詳解)

    這篇文章主要介紹了idea2020.1最新版永久破解/pycharm也可用,本文給大家分享簡單實現(xiàn)步驟,通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 基于Java實現(xiàn)收發(fā)電子郵件功能

    基于Java實現(xiàn)收發(fā)電子郵件功能

    Email就是電子郵件,我們平常使用的QQ郵箱,網(wǎng)易郵箱,F(xiàn)oxmail都是用來收發(fā)郵件的,利用Java程序也可以完成收發(fā)電子郵件的功能,本文就來為大家詳細講講實現(xiàn)步驟
    2022-07-07
  • idea hibernate jpa 生成實體類的實現(xiàn)

    idea hibernate jpa 生成實體類的實現(xiàn)

    這篇文章主要介紹了idea hibernate jpa 生成實體類的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 詳解Java中static關(guān)鍵字和內(nèi)部類的使用

    詳解Java中static關(guān)鍵字和內(nèi)部類的使用

    這篇文章主要為大家詳細介紹了Java中static關(guān)鍵字和內(nèi)部類的使用,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08

最新評論