38. 外观数列
- 题号:38
- 来源:LeetCode
- 难度:中等
- 标签:
字符串模拟 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · 更新于 2026-09-27
逐层做游程编码,迭代 n 次得到答案
typescript
/**
* @difficulty medium
* @tags 字符串,模拟
* @note 逐层做游程编码,迭代 n 次得到答案
* @38. 外观数列
* 字符串压缩算法
*/
function countAndSay(n:number) {
const REl = (str:string) => {
let res = ''
let k = '-1'
let v = 0
if (str.length === 1) { return str + str }
for (let i = 0; i < str.length; i++) {
if (k === '-1') {
k = str[i]
v++
continue
}
if (str[i] === k) {
v++
} else {
res += (v.toString() + k)
k = str[i]
v = 1
}
if (i === str.length - 1) {
res += (v.toString() + k)
}
}
return res
}
let rle = '1'
for (let i = 2; i <= n; i++) {
console.log(REl(rle))
rle = REl(rle)
}
return rle
};在 GitHub 上查看题目所在目录:lmliheng/algorithm