The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 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 sequence.Note: The sequence of integers will be represented as a string.
這道題很簡單啦,比如1211,它是由1個1,1個2,2個1
構成的,那麼它的下一個就是111221
,也就是由相同連續數字的個數+數字
組合而成。說到底,就是對字符串的操作。
下面貼上代碼:
class Solution {
public:
string countAndSay(int n) {
if (n <= 0)
return string();
string ans="1";
for (int i = 1; i < n; i++){
ans = fun(ans);
}
return ans;
}
string fun(string s){
stringstream ans;
int count = 0;
char c = s[0];
for (int i = 0; i <= s.length(); i++){
if (c!=s[i]){
ans << count <