38.外观数列
这道题就是把字符串中的连续相同字符个数插入到字符串的前面。比如21,2的个数是1,1的个数也是1,所以组成的字符串是1211。1211中1的个数是1,2的个数是1,1的个数是2所以可以推导出字符串为111221。
| class Solution {
public String countAndSay(int n) {
String s = "1";
for(int i = 0;i< n - 1;i++){
s = count(s);
}
return s;
}
private String count(String s) {
StringBuffer sb = new StringBuffer();
char c = s.charAt(0);
int count = 0;
for(int i = 0;i < s.length();i++){
if(c == s.charAt(i)){
count++;
}else{
sb.append(count);
sb.append(c);
c = s.charAt(i);
count = 1;
}
if(i == s.length()-1){
sb.append(count);
sb.append(c);
}
}
return sb.toString();
}
}
|