给定两个整数 A
和 B
,返回任意字符串 S
,要求满足:
S
的长度为A + B
,且正好包含A
个'a'
字母与B
个'b'
字母;- 子串
'aaa'
没有出现在S
中; - 子串
'bbb'
没有出现在S
中。
示例 1:
输入:A = 1, B = 2
输出:"abb"
解释:"abb", "bab" 和 "bba" 都是正确答案。
示例 2:
输入:A = 4, B = 1
输出:"aabaa"
提示:
0 <= A <= 100
0 <= B <= 100
对于给定的 A
和 B
,保证存在满足要求的 S
。
C++
class Solution {
public:
string strWithout3a3b(int A, int B)
{
string res="";
if(A==B)
{
for(int i=0;i<A;i++)
{
res+="ab";
}
}
else if(A>B)
{
while(A>B && B>0)
{
res+="aab";
A-=2;
B--;
}
if(A==B)
{
for(int i=0;i<A;i++)
{
res+="ab";
}
}
else
{
res.append(A,'a');
}
}
else
{
while(B>A && A>0)
{
res+="bba";
B-=2;
A--;
}
if(A==B)
{
for(int i=0;i<B;i++)
{
res+="ba";
}
}
else
{
res.append(B,'b');
}
}
return res;
}
};
python
class Solution:
def strWithout3a3b(self, A, B):
"""
:type A: int
:type B: int
:rtype: str
"""
res=""
if A==B:
res+="ab"*A
elif A>B:
while A>B and B>0:
res+="aab"
A-=2
B-=1
if A==B:
res+="ab"*A
else:
res+='a'*A
else:
while B>A and A>0:
res+="bba"
B-=2
A-=1
if B==A:
res+="ba"*B
else:
res+='b'*B
return res