Leetcode 984. 不含 AAA 或 BBB 的字符串(网友思路)

在这里插入图片描述
给定两个整数 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, b <= 100
  • 对于给定的 a 和 b,保证存在满足要求的 s

Code:

class Solution {
public:
   string strWithout3a3b(int A, int B) {
    //保证A > B
    string str = "";
    char a = 'a', b = 'b';
    if (A < B) {
        swap(A, B);
        swap(a, b);
    }
    while (A > 0 || B > 0) {
        if (A > 0) {
            str.push_back(a);
            A --;
        }
        if (A > B) {
            str.push_back(a);
            A --;
        }
        if (B > 0) {
            str.push_back(b);
            B --;
        }
    }
    return str;
}
   
};
posted @ 2022-06-29 15:04  萧海~  阅读(39)  评论(0编辑  收藏  举报