題目:
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.
Subscribe to see which companies asked this question.
浪費了點時間,count搞錯了。要注意使用的時候是使用變化之前的還是變化之後的。
貼代碼
class Solution {
public:
string countAndSay(int n) {
string outstring = "1";
for(int i = 0; i < n-1; ++ i){
outstring = Sayout(outstring);
}
return outstring;
}
string Sayout(string s){
string sout;
char nowchar, prechar;
prechar = '*';
int count = 0;
if(s.size() == 1){
return "11";
}
for(int i = 0; i < s.size(); ++i){
nowchar = s[i];
if(nowchar != prechar){
if(prechar != '*'){
sout += (to_string(count)+prechar);
}
count = 1;
prechar = nowchar;
}else{
count++;
}
}
sout += (to_string(count)+s[s.size()-1]);
return sout;
}
};