984. String Without AAA or BBB

Difficulty:
Related Topics:
Similar Questions:

    Problem

    Given two integers a and b, return any string s such that:

      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:

    Solution

    /**
     * @param {number} a
     * @param {number} b
     * @return {string}
     */
    var strWithout3a3b = function(a, b, isRevert) {
        if (b > a) return strWithout3a3b(b, a, true);
        var res = '';
        while (a > 0 || b > 0) {
            if (a > 0) {
                var num = a > 2 ? 2 : 1;
                res += (isRevert ? 'b' : 'a').repeat(num);
                a -= num;
            }
            if (b > 0) {
                var num = b > Math.ceil(a / 2) && b >= 2 ? 2 : 1;
                res += (isRevert ? 'a' : 'b').repeat(num);
                b -= num;
            }
        }
        return res;
    };
    

    Explain:

    nope.

    Complexity: