Given two integers A and B, return any string S such that:
Shas lengthA + Band 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 <= 1000 <= B <= 100- It is guaranteed such an
Sexists for the givenAandB.
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;
}
};