不难。纸上画一下就知道规律了。
public class Solution {
public String countAndSay(int n) {
StringBuilder last = new StringBuilder();
StringBuilder current = new StringBuilder("1");
int i = 1;
while (i < n)
{
last = current;
current = new StringBuilder();
int idx = 0;
while (idx < last.length())
{
char c = last.charAt(idx);
int cnt = 1;
while (idx + 1 < last.length() && c == last.charAt(idx+1))
{
idx++;
cnt++;
}
idx++;
current.append(cnt);
current.append(c);
}
i++;
}
// give out current
return current.toString();
}
}