对字符串进行操作应该实例化Stringbuilder()对象。 Stringbuilder.append().append()——字符串的连接 思路:判断连续相等数的个数:连续就计数,表达为count个lastOne,不相等就重置count和lastOne 进行重新判断。
ps:注意最后是空格的情况
public class S_038 {
public String countAndSay(int n) {
// 初始化为1的情况
String str = "1";
if(n==1){
return str;
}
// 初始值为1 防止i-1下标越界
for(int i=1;i<n;i++){
int count = 1;
// 不是string
char lastOne = '1';
StringBuilder sb =new StringBuilder();
for(int j=1;j<str.length();j++){
// 前后两数相等
if (str.charAt(j)==str.charAt(j-1)){
count++;
}
else{
// 出现了不同的数就对前面相同的数进行总结
sb.append(count).append(lastOne = str.charAt(j-1));
count = 1;
}
}
// 添加字符串
sb.append(count).append(str.charAt(str.length()-1));
// 强转类型
str = sb.toString();
}
return str;
}
}