38.外观数列

外观数列

给定一个正整数 n,输出外观数列的第 n 项。

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

  • 1 → “1”
  • 2 → “11”(1 个 1)
  • 3 → “21”(2 个 1)
  • 4 → “1211”(1 个 2,1 个 1)
  • 5 → “111221”(1 个 1,1 个 2,2 个 1)

示例 1:

输入:n = 1
输出:”1”

示例 2:

输入:n = 4
输出:”1211”

提示:

  • 1 <= n <= 30

解析

模拟过程,逐项生成,对前一项进行「读数」描述。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* @param {number} n
* @return {string}
*/
var countAndSay = function (n) {
let result = "1";

for (let i = 1; i < n; i++) {
let next = "";
let count = 1;
for (let j = 1; j < result.length; j++) {
if (result[j] === result[j - 1]) {
count++;
} else {
next += count + result[j - 1];
count = 1;
}
}
next += count + result[result.length - 1];
result = next;
}
return result;
};

简单的模拟题,逐个字符统计连续相同字符的个数,拼接成新字符串。


38.外观数列
https://leetcode.lz5z.com/38.count-and-say/
作者
tickli
发布于
2023年9月14日
许可协议