给定两个整数 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。
解题思路:
1.当max > 2min+2 时候此题无解;
2.假如a>b,应该尽可能让“aab”尽可能的多,反之a<b,应该尽可能让“bba”尽可能的多,
3.当a=b时,“ab”交替出现即可
代码如下:
public static String strWithout3a3b2(int a, int b) {
StringBuilder str = new StringBuilder();
while (a > 0 && b >0){
if( a > b){
str.append("aab");
a -= 2;
b --;
}else if( b > a){
str.append("aab");
a --;
b -= 2;
}else if(a == b){
str.append("ab");
a --;
b --;
}
}
while ( a > 0){
str.append("a");
a --;
}
while ( b > 0){
str.append("b");
b --;
}
return str.toString();
}