420. 报数
报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
1, 11, 21, 1211, 111221, ...
1 读作 "one 1" -> 11
11 读作 "two 1s" -> 21
21 读作 "one 2, then one 1" -> 1211
给定一个整数 n, 返回 第 n 个顺序。
样例
样例 1:
输入:1
输出:"1"
样例 2:
输入:5
输出:"111221"
注意事项
整数的顺序将表示为一个字符串。
public class Solution {
/**
* @param n: the nth
* @return: the nth sequence
*/
public String countAndSay(int n) {
// write your code here
if (n<2)return "1";
String ret="" ;
String start = "1";
for (int i = 1; i < n; ++i) {
int count=1;
ret="";
for (int j = 1; j < start.length(); j++) {
if (start.charAt(j)==start.charAt(j-1)){
count++;
}else {
ret=ret+count+""+start.charAt(j-1);
count=1;
}
}
ret=ret+count+""+start.charAt(start.length()-1);
start=ret;
count=1;
}
return ret;
}
}