38.外观数列
这道题就是把字符串中的连续相同字符个数插入到字符串的前面。比如21,2的个数是1,1的个数也是1,所以组成的字符串是1211。1211中1的个数是1,2的个数是1,1的个数是2所以可以推导出字符串为111221。
1
class Solution {
2
public String countAndSay(int n) {
3
String s = "1";
4
for(int i = 0;i< n - 1;i++){
5
s = count(s);
6
}
7
return s;
8
}
9
private String count(String s) {
10
StringBuffer sb = new StringBuffer();
11
char c = s.charAt(0);
12
int count = 0;
13
for(int i = 0;i < s.length();i++){
14
if(c == s.charAt(i)){
15
count++;
16
}else{
17
sb.append(count);
18
sb.append(c);
19
c = s.charAt(i);
20
count = 1;
21
}
22
if(i == s.length()-1){
23
sb.append(count);
24
sb.append(c);
25
}
26
}
27
return sb.toString();
28
}
29
}
Copied!
最近更新 28d ago
复制链接