[38] 外观数列

 1 /**
 2  * @param {number} n
 3  * @return {string}
 4  */
 5 var countAndSay = function (n) {
 6   if (n === 1) {
 7     return '1';
 8   }
 9   let str = '1';
10   while (true) {
11     let newStr = '';
12     const charArr = str.split('')
13     const ll = charArr.length;
14     let t = charArr[0];
15     let sum = 1;
16     for (let i = 1; i < ll; i++) {
17       const newt = charArr[i];
18       if (newt === t) {
19         sum++;
20       } else {
21         newStr = newStr + String(sum) + t;
22         t = newt;
23         sum = 1;
24       }
25     }
26     newStr = newStr + String(sum) + t;
27     if (n === 2) {
28       return newStr;
29     } else {
30       n = n - 1;
31       str = newStr;
32     }
33   }
34 };

 

posted @ 2023-11-30 13:50  人恒过  阅读(20)  评论(0)    收藏  举报