Given two integers A
and B
, return any string S
such that:
S
has lengthA + B
and contains exactlyA
'a'
letters, and exactlyB
'b'
letters;- The substring
'aaa'
does not occur inS
; - The substring
'bbb'
does not occur inS
.
Example 1:
Input: A = 1, B = 2 Output: "abb" Explanation: "abb", "bab" and "bba" are all correct answers.
Example 2:
Input: A = 4, B = 1 Output: "aabaa"
Note:
0 <= A <= 100
0 <= B <= 100
- It is guaranteed such an
S
exists for the givenA
andB
.
Related Topics:
Greedy
// OJ: https://leetcode.com/problems/string-without-aaa-or-bbb/
// Author: github.com/lzl124631x
// Time: O(A + B)
// Space: O(1)
class Solution {
public:
string strWithout3a3b(int A, int B) {
char a = 'a', b = 'b';
if (A < B) swap(A, B), swap(a, b);
string ans;
while (A && B) {
for (int i = A > B ? 2 : 1; i > 0; --i, --A) ans += a;
ans += b;
--B;
}
while (A-- > 0) ans += a;
return ans;
}
};