题目
The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...
1
is read off as "one 1"
or 11
.11
is read off as "two 1s"
or 21
.21
is read off as "one 2
, then one 1"
or 1211
.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
代码
public String countAndSay(int n){
String lastNum = "1";
for(int i = 1; i <= n - 1 ; i++){
StringBuilder sb = new StringBuilder();
char[] chars = lastNum.toCharArray();
char cur = chars[0];
int times = 0;
for(int j = 0; j < lastNum.length(); j++){
if(chars[j] == cur)
times ++;
else {
sb.append(times).append(cur);
cur = chars[j];
times = 1;
}
if(j == lastNum.length() - 1){
sb.append(times).append(cur);
}
}
lastNum = sb.toString();
}
return lastNum;
}
/********************************
* 本文来自博客 “李博Garvin“
* 转载请标明出处:http://blog.csdn.net/buptgshengod
******************************************/