0038.外观数列
方法一:遍历扫描
时间复杂度 $O(n \times m)$,空间复杂度 $O(m)$,其中 m
表示返回串即第 n
个外观数列的长度。
func countAndSay(n int) string {
ans := "1"
for i := 0; i < n-1; i++ {
t := ""
for l, r := 0, 0; r < len(ans); {
for r < len(ans) && ans[l] == ans[r] {
r++
}
t += fmt.Sprintf("%d%c", r-l, ans[l])
l = r
}
ans = t
}
return ans
}