leetcode笔记:Count and Say
2015-09-14 09:09
639 查看
一.题目描述
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.
二.题目分析
题目的内容很多,其实就是根据一个数的读法,组合出下一个数,比如11,读作2(个)1,因此下个数是21;同理,21读作1(个)2、1(个)1,因此下个数是1211…
根据题意,发现该题没有什么高级的技巧,代码中主要使用了
三.示例代码
四.小结
需要好好学习一下
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.
二.题目分析
题目的内容很多,其实就是根据一个数的读法,组合出下一个数,比如11,读作2(个)1,因此下个数是21;同理,21读作1(个)2、1(个)1,因此下个数是1211…
根据题意,发现该题没有什么高级的技巧,代码中主要使用了
string和
stringstream,需要加入头文件
#include <string>,
#include <sstream>,关于
string和
stringstream的用法,可参考:http://blog.csdn.net/xw20084898/article/details/21939811 。该程序只是实现了对题目要求的模拟,然后输出结果。
三.示例代码
#include <string> #include <sstream> using namespace std; class Solution { public: string CountAndSay(int n) { string result = "1"; while (--n) result = theNextStr(result); return result; } private: string theNextStr(const string& str) { if (str.empty()) return string(); stringstream result; int strSize = str.size(); int count = 1; // 计数 for (int Index = 0; Index < strSize - 1; Index++) { if (str[Index] == str[Index + 1]) count++; else { result << count << str[Index]; count = 1; } } result << count << str[strSize - 1]; // 最后一位 return result.str(); } };
四.小结
需要好好学习一下
string和
stringstream的用法。
相关文章推荐
- 现在,UICollectionViews有了简单的重排功能
- 数学之美读后感
- 关于学校开设的计算机专业课的一点想法
- 解决fonts.gstatic.com无法访问
- 动态链接库两种调用方式的比较
- git使用笔记一:
- iOS7 最佳实践:一个天气应用案例(上)
- 前端图片选择问题
- 0911,循环
- php中关于mysqli和mysql区别的一些知识点分析
- 排序算法之选择排序
- Tomcat不同版本所对应的Servlet/JSP规范
- 兔子--Service与IntentService的区别
- 手机WEB附件上传:html5版uploadify+webview上传附件实现
- 2015 9月14日 工作计划与执行
- Neural Networks and Deep Learning
- 源码推荐(9.14):自定义控制器POP手势动画,快速创建model
- 《Linux内核编程》第四章:proc文件系统 http://blog.csdn.net/tankai19880619/article/details/8032204
- 工具类
- 2015 9月14日 周计划