报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
1, 11, 21, 1211, 111221, ...
1
读作 "one 1"
-> 11
.
11
读作 "two 1s"
-> 21
.
21
读作 "one 2, then one 1"
-> 1211
.
给定一个整数 n
, 返回 第 n
个顺序。
样例
给定 n = 5
, 返回 "111221"
.
public class Solution {
/**
* @param n the nth
* @return the nth sequence
*/
public String countAndSay(int n) {
// Write your code here
String oldString = "1";
while(--n>0){
StringBuilder sb = new StringBuilder();
char[] oldStrings = oldString.toCharArray();
for(int i=0;i<oldStrings.length;i++){
int count =1;
while(i+1<oldStrings.length&&oldStrings[i]==oldStrings[i+1]){
i++;
count++;
}
sb.append(String.valueOf(count)+String.valueOf(oldStrings[i]));
}
oldString =sb.toString();
}
return oldString;
}
}