生成规律就是代码思路~用prev记录第i个字符串,cur为第i+1个字符串。 逐个访问prev的元素并进行统计。c为当前字符,count为c连续出现的个数。 当前访问的元素prev[i]与c不同时,将count, c转化成字符串格式,插入cur中;更新c和count.
string countAndSay(int n) {
string prev="1";
string cur="";
for(int i=2;i<=n;i++){
int len=prev.length();
char c=prev[0];
int count=1;
int j=1;
while(j<len){
if(c==prev[j]){
j++;count++;
}else{
cur+='0'+count;
cur+=c;
count=1;
c=prev[j++];
}
}
cur+='0'+count;
cur+=c;
prev=cur;
cur="";
}
return prev;
}
No comments:
Post a Comment