题目链接
外观数列
题目描述
注意点
- 1 <= n <= 30
- countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串
解答思路
- 从第一个数1开始不断遍历推出下一个外观数列,下一个外观数列是由当前数列中连续数字的数量+该数字组成,参照本思路即可
代码
class Solution {
public String countAndSay(int n) {
String oldData = "1";
for (int i = 2; i <= n; i++) {
StringBuilder newData = new StringBuilder();
for (int j = 0; j < oldData.length();) {
int num = 1;
char c = oldData.charAt(j);
j++;
while (j < oldData.length() && oldData.charAt(j) == c) {
num++;
j++;
}
newData.append(num).append(c);
}
oldData = newData.toString();
}
return oldData;
}
}
关键点
- 无