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 class Solution {
public String countAndSay(int n) {
String s = "1";
if (n == 1) {
return s;
}
for (int i = 2; i <= n; i++) {
int count = 0;
char ch = 0;
StringBuilder sb = new StringBuilder();
for (int j = 0; j < s.length(); j++) {
char c = s.charAt(j);
if (0!=count && c==ch) {
count++;
} else {
if (0!=count) {
sb.append(count).append(ch);
}
count = 1;
ch = c;
}
}
sb.append(count).append(ch);
s = sb.toString();
}
return s;
}
}
本文详细解析了Count and Say序列的生成过程,通过一个简单的递归算法实现了从1到任意n的序列生成,并提供了代码实现。适用于理解序列生成算法和递归编程技巧。
494

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



