leetcode38——Count and Say

题目大意:数数并记录,求出第n个字符串序列,字符串序列规律如下:

                第一个:1(初始序列)

                第二个:11(11:在描述第一个序列)

                第三个:21(21:在描述第二个序列)

                第四个:1211(12+11:在描述第三个序列

                第五个:111221(11+12+21:在描述第四个序列)

分析:循环n-1次遍历上一个字符串得到当前答案字符串。

代码:遍历n-1次字符串

class Solution {
public:
string countAndSay(int n) {
string tmp = "1";
for (int i = 1;i < n;i++) {  //第n个序列就是循环n-1次这个过程
int j = 0;
int k = 1;  //记录当前字符已有个数
string now = "";
while (j < tmp.size()) {
if (tmp[j] == tmp[j + 1]) {
k++;
}
else {
char count = k + '0';
now = now + count + tmp[j];
k = 1;
}
j++;
}
tmp = now;
}
return tmp;
}

};

阅读更多
个人分类: 数据结构
上一篇leetcode37——Sudoku Solver
下一篇leetcode39——Combination Sum
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭