LeetCode Count and say
来源:互联网 发布:站长工具seo推广 编辑:程序博客网 时间:2024/05/07 19:36
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.
该题 解题主要是模拟过程 打印结果
class Solution {public: string countAndSay(int n) { string seq = "1";int count = 1;string rs;int len=1;while(count != n){for(int j=0;j<seq.size();){string tmp = "s";tmp[0] = seq[j];int pos = seq.find_first_not_of(tmp,j);if(pos==-1)pos = seq.size();len = pos-j;rs += len+'0';rs += seq[j];j = j+len;len = 1;}seq = rs;rs = "";count++;}return seq; }};
用了 string::find_first_not_of 不过感觉这个算法复杂度很高 我测试30 就很慢
网上找到了一个也是用了STL的算法 比我这个要精练很多
(原作连接找不到了 但是我保留了 他的作者信息)
<pre name="code" class="cpp">// LeetCode, Count and Say// @author 连城 (http://weibo.com/lianchengzju)// 时间复杂度 O(n^2),空间复杂度 O(n)class Solution {public: string countAndSay(int n) { string s("1"); while (--n) s = getNext(s); return s; } string getNext(const string &s) { stringstream ss; for (auto i = s.begin(); i != s.end(); ) { auto j = find_if(i, s.end(), bind1st(not_equal_to<char>(), *i)); ss << distance(i, j) << *i; i = j; } return ss.str(); }};
0 0
- LeetCode: Count and Say
- [LeetCode]Count and Say
- LeetCode Count and Say
- [Leetcode] Count and Say
- Leetcode: Count and Say
- [LeetCode] Count and Say
- LeetCode Count and Say
- [LeetCode]Count and Say
- [LeetCode] Count and Say
- LeetCode-Count and Say
- LeetCode: Count and Say
- LeetCode - Count and Say
- [LeetCode] Count and Say
- Count and Say 【leetcode】
- [LeetCode] Count and Say
- Leetcode Count and Say
- LeetCode Count and Say
- LeetCode | Count and Say
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- 无聊帮自己板子装上了3D模型
- proguard工具实现代码混淆
- jss01
- 网站构建一
- LeetCode Count and say
- 服务端新开多线程使用HibernateSession 杜绝No session
- iOS如何实现传值---属性传值
- 别让心失明
- 解决乱码的积累
- OCP 1Z0 052 71
- jss02
- Android Bander设计与实现 - 设计篇
- android4.1 phone模块流程(转)