Problem
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, andThe 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"
Constraints:
0 <= a, b <= 100It is guaranteed such an
sexists for the givenaandb.
Solution
/**
* @param {number} a
* @param {number} b
* @return {string}
*/
var strWithout3a3b = function(a, b, isRevert) {
if (b > a) return strWithout3a3b(b, a, true);
var res = '';
while (a > 0 || b > 0) {
if (a > 0) {
var num = a > 2 ? 2 : 1;
res += (isRevert ? 'b' : 'a').repeat(num);
a -= num;
}
if (b > 0) {
var num = b > Math.ceil(a / 2) && b >= 2 ? 2 : 1;
res += (isRevert ? 'a' : 'b').repeat(num);
b -= num;
}
}
return res;
};
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).