lintcode 容易题:Count and Say 报数
2015-10-14 19:37
176 查看
题目:
报数
报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
给定一个整数
样例
给定 n =
注意
整数的顺序将表示为一个字符串
解题:
题目思路很清晰,按照高位到低位的顺序,统计相同数字的个数,并把a个b写成ab的形式,所以的连接在一起就是一个新数,下一个数利用同样的规律。
一个有意思的网站,Python程序来源。
Java程序:
View Code
总耗时: 312 ms
根据运行错误的结果,发现这个题目的测试数据只是 1 到9 这9个数,太小了吧。。。
报数
报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:
1, 11, 21, 1211, 111221, ...
1读作
"one 1"->
11.
11读作
"two 1s"->
21.
21读作
"one 2, then one 1"->
1211.
给定一个整数
n, 返回 第
n个顺序。
样例
给定 n =
5, 返回
"111221".
注意
整数的顺序将表示为一个字符串
解题:
题目思路很清晰,按照高位到低位的顺序,统计相同数字的个数,并把a个b写成ab的形式,所以的连接在一起就是一个新数,下一个数利用同样的规律。
一个有意思的网站,Python程序来源。
Java程序:
class Solution: # @param {int} n the nth # @return {string} the nth sequence def countAndSay(self, n): # Write your code here p = '1' seq = [1] m = n while n>1: q = '' idx = 0 l = len(p) while idx<l: start = idx idx = idx + 1 while idx<l and p[idx]==p[start]: idx = idx + 1 q = q+str(idx - start) + p[start] n, p = n -1 ,q seq.append(int(p)) return str(seq[m-1])
View Code
总耗时: 312 ms
根据运行错误的结果,发现这个题目的测试数据只是 1 到9 这9个数,太小了吧。。。
相关文章推荐
- 信息项目管理师-整体管理知识点
- scheduleAtFixedRate 与 scheduleWithFixedDelay 区别
- 10个必需的iOS开发工具和资源
- Android 设计模式模式适配器
- CMMI(软件能力成熟度模型集成)名词术语整理
- SQL查询语句
- 1077. Kuchiguse
- 【hihocoder】1237 : Farthest Point ->微软2016校招在线笔试题
- iOS开发-14款状态栏(StatusBar)开源软件
- 笔试题——char能否存中文汉字
- 信息系统项目管理师:论项目的质量管理
- load和initialize的区分
- 1027. Colors in Mars
- 关于与运算和取余之间的关系
- 面试用友的前后;笔试跟面试
- The first blog:不称职的软件工程本科生到码农研究生的转变。
- NIM 博弈游戏
- 1015. Reversible Primes
- poj 2914 全局最小割(stoer_wagner算法)
- iOS开发者必备:四款后端服务工具