More:【目录】LeetCode Java实现
https://leetcode.com/problems/count-and-say/
The count-and-say sequence is the sequence of integers with the first five terms as following:
1. 1 2. 11 3. 21 4. 1211 5. 111221
1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1" or 1211.
Given an integer n where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence.
Note: Each term of the sequence of integers will be represented as a string.
Example 1:
Input: 1 Output: "1"
Example 2:
Input: 4 Output: "1211"
Straightforward
public String countAndSay(int n) {
String str="1";
if(n==1)
return str;
while(n>1){
str=getNext(str);
n--;
}
return str;
}
private String getNext(String str){
StringBuilder sb = new StringBuilder();
int i=0;
while(i<str.length()){
char num=str.charAt(i);
int count=0;
while(i<str.length() && str.charAt(i)==num){
i++;
count++;
}
sb.append(count).append(num);
}
return sb.toString();
}
More:【目录】LeetCode Java实现
原文:https://www.cnblogs.com/yongh/p/11665845.html