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

本文共 1093 字,大约阅读时间需要 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个数,太小了吧。。。

 

转载于:https://www.cnblogs.com/theskulls/p/4878457.html

你可能感兴趣的文章
洗牌算法Fisher-Yates以及C语言随机数的产生
查看>>
lintcode-medium-Find the Missing Number
查看>>
网址url传递参数包含中文时乱码的问题的解决
查看>>
java——多线程并发库
查看>>
[js开源组件开发]js轮播图片支持手机滑动切换
查看>>
JSONObject的toBean 和 fromObject
查看>>
DoTween小结
查看>>
CURL 支持 GET、PUT、POST、DELETE请求
查看>>
.net(c#)中的new关键字
查看>>
【文智背后的奥秘】系列篇——文本聚类系统
查看>>
实时信号
查看>>
struct和typedef struct的区别
查看>>
内存测试——Android Studio中对应进程的Heap
查看>>
『校内OJ』NOIP2019模拟赛(二)
查看>>
mongodb-安装&配置&启动
查看>>
Oracle按数字大小排序
查看>>
在Visual Studio中使用MonoTouch开发iOS应用程序
查看>>
python入门作业---ATM+购物商场程序(2)
查看>>
仿射函数
查看>>
(一) Keras 一元线性回归
查看>>