首页 > 代码库 > LeetCode 38. Count and Say
LeetCode 38. Count and Say
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.
这个题目的意思要弄懂,我刚开始没看懂什么意思
1.1
2.11
3.21
4.1211
5.111221
count and say 就是这样输入1则输出1,第二行就有规律了,第一行是1个1,第二行的字符串就是1个1连起来11
同理第三行是2个1,第四行是1个2,1个1.。。。
弄懂了题目的意思,做起来就不会这么难了
class Solution {public: string countAndSay(int n) { string pre = "1", current; for (int i = 2;i <= n;++i) { current = ""; char prechar = pre[0]; int count = 0; for (int j = 1;j < pre.size();++j) { ++count; if (pre[j] != prechar) { current.insert(end(current), char(count + 48)); current.insert(end(current), prechar); prechar = pre[j]; count = 0; } } current.insert(end(current), char(count + 1 + 48)); current.insert(end(current), prechar); pre = current; } return pre; }};
LeetCode 38. Count and Say
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。