Skip to content

Files

Latest commit

 

History

History
73 lines (52 loc) · 2.21 KB

984-string-without-aaa-or-bbb.md

File metadata and controls

73 lines (52 loc) · 2.21 KB

984. String Without AAA or BBB - 不含 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"

 

提示:

  1. 0 <= A <= 100
  2. 0 <= B <= 100
  3. 对于给定的 AB,保证存在满足要求的 S

题目标签:Greedy

题目链接:LeetCode / LeetCode中国

题解

Language Runtime Memory
java 3 ms 37 MB
class Solution {
    public String strWithout3a3b(int A, int B) {
        if (A == 0) {
            return new String(new char[B]).replace('\0', 'b');
        }
        if (B == 0) {
            return new String(new char[A]).replace('\0', 'a');
        }
        if (A == B) {
            return new String(new char[A * 2]).replace("\0\0", "ab");
        } else {
            if (A > B) {
                return "aab" + strWithout3a3b(A - 2, B - 1);
            } else {
                return "bba" + strWithout3a3b(A - 1, B - 2);
            }
        }
    }
}