以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
121. 一个数列

解答: 可以通过迭代的方式,从第一个数开始,不断生成下一个数,直到生成第n个数为止。

具体实现可以使用一个指针prev指向上一个数,在每次生成新数时计算该数的数量,并更新prev的值。代码如下:

function getNthNum(n) { let prev = '1'; // 第一个数是 1 for (let i = 1; i < n; i++) { let count = 1; // 数量计数器 let cur = ''; // 当前数的字符串形式 for (let j = 1; j < prev.length; j++) { if (prev[j] === prev[j-1]) { count++; // 相邻数字相同,数量加1 } else { cur += count + prev[j-1]; // 不同,加入前一个数字的数量和值 count = 1; // 数量计数器归1 } } // 处理末尾数字 cur += count + prev[prev.length-1]; prev = cur; // 更新prev } return prev; }

测试代码:

console.log(getNthNum(1)); // '1' console.log(getNthNum(2)); // '11' console.log(getNthNum(3)); // '21' console.log(getNthNum(4)); // '1211' console.log(getNthNum(5)); // '111221'