报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
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".1211 读作 "one
1,one 2, then two 1s" -> 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 [] oldChars = oldString.toCharArray();
for (int i = 0; i < oldChars.length; i++) {
int count = 1;
while ((i+1) < oldChars.length && oldChars[i] == oldChars[i+1]) {
count++;
i++;
}
sb.append(String.valueOf(count) + String.valueOf(oldChars[i]));//追加个数和字符
}
oldString = sb.toString();
}
return oldString;
}
}
662

被折叠的 条评论
为什么被折叠?



