这个题目相对简单,但是理解上需要仔细一点:
图片.png
简单来说题目让我们找规律,没有什么更好的方法,就是从头到n 依次计算,第一层循环是行数循环,为了减少一个统计行数的变量 我直接这样写:--n>0:首先n减一 然后判断是否大于零。
后面就是按行分配循环 然后计算出相同的char有几个:
class Solution {
//my
public String countAndSay2(int n) {
if (n <= 0)
return "";
String ans="1";
while(--n>0){
String cur="";
for(int i=0;i<ans.length();i++){
Integer cnt=1;
while(i+1<ans.length()&& ans.charAt(i+1)==ans.charAt(i)){
cnt++;
i++;
}
cur+=cnt.toString()+ans.charAt(i);
}
ans=cur;
}
return ans;
}
}
网友评论