學(xué)習(xí)力扣:984. 不含 AAA 或 BBB 的字符串

給定兩個(gè)整數(shù)?A?和?B,返回任意字符串 S,要求滿足:

S 的長(zhǎng)度為?A + B,且正好包含?A?個(gè) 'a'?字母與?B?個(gè) 'b'?字母;

子串?'aaa'?沒(méi)有出現(xiàn)在?S?中;

子串?'bbb' 沒(méi)有出現(xiàn)在?S?中。

示例 1:

輸入:A = 1, B = 2

輸出:"abb"

解釋:"abb", "bab" 和 "bba" 都是正確答案。

示例 2:

輸入:A = 4, B = 1

輸出:"aabaa"

提示:

0 <= A <= 100

0 <= B <= 100

對(duì)于給定的 A 和 B,保證存在滿足要求的 S。

解題思路:

1.當(dāng)max > 2min+2 時(shí)候此題無(wú)解;

2.假如a>b,應(yīng)該盡可能讓“aab”盡可能的多,反之a(chǎn)<b,應(yīng)該盡可能讓“bba”盡可能的多,

3.當(dāng)a=b時(shí),“ab”交替出現(xiàn)即可

代碼如下:

public static String strWithout3a3b2(int a, int b) {

? ? ? ? StringBuilder str = new StringBuilder();

? ? ? ? while (a > 0 && b >0){

? ? ? ? ? ? if( a > b){

? ? ? ? ? ? ? ? str.append("aab");

? ? ? ? ? ? ? ? a -= 2;

? ? ? ? ? ? ? ? b --;

? ? ? ? ? ? }else if( b > a){

? ? ? ? ? ? ? ? str.append("aab");

? ? ? ? ? ? ? ? a --;

? ? ? ? ? ? ? ? b -= 2;

? ? ? ? ? ? }else if(a == b){

? ? ? ? ? ? ? ? str.append("ab");

? ? ? ? ? ? ? ? a --;

? ? ? ? ? ? ? ? b --;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? while ( a > 0){

? ? ? ? ? ? str.append("a");

? ? ? ? ? ? a --;

? ? ? ? }

? ? ? ? while ( b > 0){

? ? ? ? ? ? str.append("b");

? ? ? ? ? ? b --;

? ? ? ? }

? ? ? ? return str.toString();

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容