0 <= b <= 100
對於給定的a
和b
,保證存在滿足要求的s
。
c++函式形式為:string strwithout3a3b
(int a,
int b)
題目保證一定存在這樣的s
,我們可以逆向的分析一下,當兩個整數需要滿足什麼樣的情況時,才一定能保證存在這樣的s
呢?
來乙個極端的思想,如果a
非常多,b
非常少,a
和b
之間存不存在制約呢?
我們很容易得出這樣的極端情況就是a=2b+2
,也就是每兩個a
後都跟著乙個b
,最後還有兩個a
的情況。如果a
再多乙個,就找不到合適的位置了。相反,如果b
多a
少,也是一樣的情況。
於是我們就有思路了,假如a
多b
少,我們可以先按照b
的數量構造出乙個極端情況的字串,然後,再根據a
的數量從兩個相鄰的裡面刪去乙個。反過來也是一樣的做法。
還有就是a==b
的情況,這時候,只要乙個接乙個的加上去就行了。
整個題的思路:
class
solution
return s;}if
(a>b)
else}}
int num=
2*b+
2-a;
for(
int i=
0;i)return s;
}else
else}}
int num=
2*a+
2-b;
for(
int i=
0;i)return s;
}return s;}}
;
atfwus --writing by 2020–03–20
每日刷題 不含 AAA 或 BBB 的字串
示例 1 輸入 a 1,b 2 輸出 abb 解釋 abb bab 和 bba 都是正確答案。示例 2 輸入 a 4,b 1 輸出 aabaa 解答 這道題可以用貪心演算法來解決。但是注意需要設定乙個flag標誌。我們定義 a,b 待寫的 a 與 b 的數量。設當前還需要寫入字串的 a 與 b 中較...
最長不含重複字串的子字串
一 題目描述 請從字串中找出乙個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含 a a z z 的字元。例如,在字串 arabcacfr arabcacfr 中,最長的不含重複字元的子字串是 rabc rabc 或者 acfr acfr 長度為4.二 解題思路 1.採用動態規...
最長不含重複字元的子字串
題目 輸入乙個字串,找出字串中最長的不含重複字元的子字串,計算該子字串的長度。假設字串中的字元為 a z 例如 arabcacfr 最長的字串為 rabc 和 acfr 長度為 4 int find max len string str else dp str i a i return max le...