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.
tag :字符串的处理。
注意: 不要忘记最后一个字符的处理
public class Solution {
/*
1
11
21
1211
111221
312211
13112221
*/
public String countAndSay(int n) {
if(n <= 0) {
return "";
}
String res = "1";
int start = 1;
while(start < n) {
StringBuilder sb = new StringBuilder();
int count = 1;
for(int i = 1; i < res.length(); i++) {
if(res.charAt(i) == res.charAt(i - 1)) {
count++;
} else {
sb.append(count);
sb.append(res.charAt(i - 1));
count = 1;
}
}
sb.append(count);
sb.append(res.charAt(res.length() - 1));
res = sb.toString();
start++;
}
return res;
}
}