如果字串中不含有任何'aaa'
,'bbb'
或'ccc'
這樣的字串作為子串,那麼該字串就是乙個「快樂字串」。
給你三個整數 a,b ,c,請你返回 任意乙個 滿足下列全部條件的字串 s:
輸入:a = 1, b = 1, c = 7
輸出:"ccaccbcc"
解釋:"ccbccacc"
也是一種正確答案。
輸入:a = 2, b = 2, c = 1
輸出:"aabbc"
輸入:a = 7, b = 1, c = 0
輸出:"aabaa"
解釋:這是該測試用例的唯一正確答案。
這道題的思路是我們先將字元和數量對應存在自定義的char
類中,方便對char
陣列進行排序(從大到小,降序排列);這樣每次可以取出數量最多的(類似最大優先佇列);由於每次最多只能有兩個連續的字元,我們需要判斷前兩個字元是否和當前的數量最多的字元一致,一致的話我們不能繼續新增該字元,得看看是否存在第二多的字元(如果其他字元數量都是0
就不行了);不一致的話我們即可直接新增。按照這樣的策略就能得到最長的快樂字串。
public string longestdiversestring
(int a,
int b,
int c)
else
// 否則,無法繼續新增,終止迴圈
break;}
else
}else
// 對自定義的 char 陣列進行排序
arrays.
sort
(ch);}
return sb.
tostring()
;}/** * 任意乙個字元的數量非空
* @param ch
* @return
*/public
boolean
check
(char[
] ch)
return
false;}
/** * 自定義型別,含字元和數量,並實現 comparable 介面,方便根據 num 來排序
*/class
char
implements
comparable
/*** 根據 num,降序排序
* @param o
* @return
*/@override
public
intcompareto
(char o)
}
1405 最長快樂字串
如果字串中不含有任何 aaa bbb 或 ccc 這樣的字串作為子串,那麼該字串就是乙個 快樂字串 給你三個整數 a,b c,請你返回 任意乙個 滿足下列全部條件的字串 s s 是乙個盡可能長的快樂字串。s 中 最多 有a 個字母 a b 個字母 b c 個字母 c s 中只含有 a b c 三種字...
1405 最長快樂字串(貪心演算法)
如果字串中不含有任何 aaa bbb 或 ccc 這樣的字串作為子串,那麼該字串就是乙個 快樂字串 給你三個整數 a,b c,請你返回 任意乙個 滿足下列全部條件的字串 s s 是乙個盡可能長的快樂字串。s 中 最多 有a 個字母 a b 個字母 b c 個字母 c s 中只含有 a b c 三種字...
Leetcode 最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。includ...