您的位置:首页 > 其它

[LeetCode] 38. Count and Say

2016-07-20 16:36 363 查看
思路:

拿两个字符串变量循环记录结果即可. 每次遍历res字符串, 拿count变量记录连续相同字符的个数, 遇到不同的以后把count和count数的字符添加到temp串里, 最后内层循环结束别忘了把最后一组子字符串的count和字符填到temp里, 然后交换一下res和temp即可.

string countAndSay(int n) {
if (! n) return "";
if (n == 1) return "1";
string res = "1", temp = "";
while (n-- > 1) {
int count = 1;
for (int i = 1; i < res.length(); i++) {
if (res[i] == res[i - 1])
count++;
else {
temp += (char)(count + '0');
temp += res[i - 1];
count = 1;
}
}
temp += (char)(count + '0'), temp += res.back();
res = "";
swap(res, temp);
}
return res;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode