題目
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, generate the nth term of the count-and-say sequence.
Note: Each term of the sequence of integers will be represented as a string.
思路
寫一個遞歸就是咯、讀取當前的String,即形成新的String。
代碼
public class Solution {
//子函數,讀取當前的String形成新的String
public String countAndSay_Sub (String s){
String result = "";
int count = 1;
int i = 0;
while(i < s.length()){
while((i + count) < s.length() && s.charAt(i) == s.charAt(i + count)) ++ count;
result = result + count + s.charAt(i);
i = i + count;
count = 1;
}
return result;
}
public String countAndSay(int n) {
String result = "1";
for(int i = 1 ; i < n ; ++ i){
result = countAndSay_Sub(result);
}
return result;
}
}