1刷
水题一题,直接按照字面意思来
PS,int转string
用stringstream ss;详细看代码
class Solution {
public:
string countAndSay(int n) {
string s = "1";
string last = "1";
for(int i = 2; i <= n; ++ i){
s = "";
int num = 1;
char u = last[0];
for(int j = 1; j < last.length(); ++ j){
if(last[j] == last[j - 1]){
num++;
continue;
}
else{
stringstream ss;
ss << num;
string sss;
ss >> sss;
s += sss;
s += u;
num = 1;
u = last[j];
}
}
stringstream ss;
ss << num;
string sss;
ss >> sss;
s += sss;
s += u;
last = s;
}
return s;
}
};
2刷
用了比1刷更好看的代码
学习to——string(count)
class Solution {
public:
string countAndSay(int n) {
if(n == 0) return "";
string s = "1";
while(--n){
string tmp = "";
for(int i = 0; i < s.size(); ++ i){
int count = 1;
while(i + 1 < s.size() && s[i] == s[i + 1]){
count++;
i++;
}
tmp += to_string(count) + s[i];
}
s = tmp;
}
return s;
}
};