![](https://img.haomeiwen.com/i14289546/7625829859411035.png)
自己解法
这个题其实就是如果有重复的数字,就给出重复数字的数目加字符,数字减1,递归,直到数字为0。用StringBuilder可以加速。
class Solution {
public String countAndSay(int n) {
return getString("1", n - 1);
}
private String getString(String s, int n) {
if (n == 0) {
return s;
}
char pre = s.charAt(0);
int number = 1;
StringBuilder sb = new StringBuilder();
for (int i = 1; i < s.length(); i++) {
if (pre == s.charAt(i)) {
number++;
} else {
sb.append(number). append(pre);
number = 1;
pre = s.charAt(i);
}
}
sb.append(number).append(pre);
return getString(sb.toString(), --n);
}
}
网友评论