博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lintcode :Count and Say 报数
阅读量:6576 次
发布时间:2019-06-24

本文共 1040 字,大约阅读时间需要 3 分钟。

题目:

报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:

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程序:

public class Solution {    /**     * @param n the nth     * @return the nth sequence     */    public String countAndSay(int n) {        // Write your code here        String oldString = "1";        while (--n>0){            StringBuilder sb = new StringBuilder();            char[] oldChars = oldString.toCharArray();            for(int i=0;i
View Code

总耗时: 7304 ms

Python程序:

 

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
View Code

总耗时: 312 ms

根据运行错误的结果,发现这个题目的测试数据只是 1 到9 这9个数,太小了吧。。。

 

转载地址:http://verjo.baihongyu.com/

你可能感兴趣的文章
从别的网站摘抄的,挺有用的
查看>>
更改一个主键的列的类型的步骤
查看>>
neo4j 如何删除所以的节点和关系
查看>>
Markdown的常用使用语法
查看>>
iOS开源库
查看>>
第4次作业类测试代码+105032014065+方绎杰
查看>>
Python绘制KS曲线
查看>>
DbUtils类的添加,修改,删除
查看>>
前端渲染和后端渲染
查看>>
项目代码matlab
查看>>
Reboot运维开发Python-03
查看>>
Javascript中括号“[]”的多义性
查看>>
.NET中异常类(Exception)
查看>>
Python windows serial
查看>>
吃货联盟
查看>>
redis的操作
查看>>
SDL1.3(C语言)程序移植LINUX。。。
查看>>
活动选择问题 贪心
查看>>
我的第一篇博客
查看>>
页面前端的水有多深?再议页面开发
查看>>