
題目
思路:
?1.??1,開始
?2. ??1解釋成1個1,得結果11
?3.??11解釋成2個1,得結果21;
?4.??21解釋成1個2,1個1,得結果1211
從第一個字符開始,如果后面的與該字符相同,則count++,不然就把該字符的count和該字符本身添加上。
public String countAndSay(int n) {
String s = "1";
for (int i = 1; i < n; i++) {
s = countChar(s);
}
return s;
}
public String countChar(String s) {
StringBuilder stringBuilder = new StringBuilder();
char c = s.charAt(0);
int count = 1;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == c) {
count++;
} else {
stringBuilder.append(count);
stringBuilder.append(c);
count = 1;
c = s.charAt(i);
}
}
stringBuilder.append(count);
stringBuilder.append(c);
return stringBuilder.toString();
}