leetcode-38-报数

1.题目描述:

给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。

注意:整数序列中的每一项将表示为一个字符串。

「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:

1.     1
2.     11
3.     21
4.     1211
5.     111221
第一项是数字 1

描述前一项,这个数是 1 即 “一个 1 ”,记作 11

描述前一项,这个数是 11 即 “两个 1 ” ,记作 21

描述前一项,这个数是 21 即 “一个 2 一个 1 ” ,记作 1211

描述前一项,这个数是 1211 即 “一个 1 一个 2 两个 1 ” ,记作 111221

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-and-say
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.上代码:(可以通过的)

/**
 * @param {number} n
 * @return {string}
 */
var countAndSay = function(n) {
     if(n<=0)
        return "";
    var res = "1";
    var cur = "";
    while(--n)
    {
        
        for(let i = 0;i<res.length;i++)
        {
            var  cnt = 1;
            while(i+1<res.length&& res[i]===res[i+1])
            {
                cnt++;
                i++;
            
            }
            cur  = cur+cnt+ res[i];
         
        }
        res = cur;
        cur ="";
    }
    return res;
};

猜你喜欢

转载自blog.csdn.net/qq_42099097/article/details/107627988