一、题目描述
二、题目思路
- 对于数列,给出了前五项,需要用到递归
- 对于需要用到前一项的数项,可以定义字符串
pre接收
- 如果判断相等则计数器累加,不相等了则将之前相等的成果存在结果中
while()判断的作用在于可以将倒数两位的情况加到结果中
- 每次将成果存到结果后,注意要将计数器
count重置
三、提交代码
class Solution {
public String countAndSay(int n) {
if(n == 1){
return "1";
}
int count =1;
int i=0;
String pre = countAndSay(n-1);
StringBuilder sb = new StringBuilder();
while(i <pre.length()){
if(i<pre.length()-1 &&(pre.charAt(i) == pre.charAt(i+1))){
count++;
}else{
sb.append(count);
sb.append(pre.charAt(i));
count =1;
}
i++;
}
return sb.toString();
}
}