984. String Without AAA or BBB
Description
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
, and - 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"
Constraints:
0 <= a, b <= 100
- It is guaranteed such an
s
exists for the givena
andb
.
Solution
string-without-aaa-or-bbb.py
class Solution:
def strWithout3a3b(self, a: int, b: int) -> str:
res = ""
while a > 0 and b > 0:
if a > b:
res += "a" * min(a, 2)
res += "b"
a -= min(a, 2)
b -= 1
elif a == b:
if not res or res[-1] == "a":
res += "b"
b -= 1
else:
res += "a"
a -= 1
else:
res += "b" * min(b, 2)
res += "a"
b -= min(b, 2)
a -= 1
if a > 0:
res += "a" * a
if b > 0:
res += "b" * b
return res