zoukankan      html  css  js  c++  java
  • 38. 外观数列

    报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
    1, 1
    2, 11
    3, 21
    4, 1211
    5, 111221
    1 被读作 “one 1” (“一个一”) , 即 11。
    11 被读作 “two 1s” (“两个一”), 即 21。
    21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。注意:整数顺序将表示为一个字符串。

    示例 1:输入: 1输出: “1”
    示例 2:输入: 4输出: “1211”

    执行用时 :84 ms, 在所有 Python3 提交中击败了15.00% 的用户
    内存消耗 :13.9 MB, 在所有 Python3 提交中击败了5.00%的用户

    首先先理解题,输入的整型数字都是上一个的读作的数,输入整型n,遍历(n-1),输出字符串
    6,3个1,2个2,1个1 即312211
    7,1个3,1个1,2个2,2个1 即13112221
    8,1个1,1个3,2个1,3个2,1个1 即1113213211
    …(1<=n<=30)

    根据思路一点一点来,输出字符串string1=‘1’,从‘1’开始

    class Solution:
        def countAndSay(self, n: int) -> str:
            #输出字符串string1='1',从‘1’开始
            string1 = '1' 
            #首先先理解题,输入的整型数字都是上一个的读作的数,输入整型n,遍历(n-1),输出字符串
            for i in range(n - 1):            
                #首先将指针指向string1的第一项,赋值给a
                a = string1[0]
                #count用来计数,每一次循环都是从0开始计数
                count = 0  
                #形成新的字符串string2,在这个循环的末端将string2赋值给string1,最后输出i=n-1时string1的值
                string2 = ''
                #用b遍历string1的每一项
                for b in string1:
                    #存在两种情况,第一种情况是a和string1[0]相等,count自加一,连续相等几次,count自加一几次
                    if a == b:                    
                        count += 1 
                    #不等时,连续中断, 形成新的字符串string2,相当于count个a,count转换成字符串可直接相加
                    else:                    
                        string2 += str(count) + a
                        #将指针指向string1的新一项,赋值给a,内循环重新开始
                        a = b 
                        #count至少为1,所以从1开始,内循环重新开始
                        count = 1
                #当前的整数,遍历上一个字符串完了,形成新的字符串string2,相当于count个a,count转换成字符串可直接相加
                string2 += str(count) + a            
                string1 = string2 
            #输出字符串string1
            return string1
    

    算法题目来自:https://leetcode-cn.com/problems/count-and-say/

  • 相关阅读:
    http 性能测试. Apache ab 使用.
    JavaScript , js 上下文(this 的指代)
    nodejs --- querystring模块.
    NodeJs -- URL 模块.
    Node.js 回调函数 1) 阻塞 ,同步 2) 非阻塞 ,异步.
    NPM 使用介绍
    xampp 忘记密码的处理方式.
    css 伪类: 1)a:link , a:visited, a:hover, a:active 2):first-child
    background 的一些 小的细节: 1, 背景色覆盖范围: border+ width+ padding ;背景图覆盖范围: width + padding ; 2设置多个背景图片 ; 3) background-position定位百分比的计算方式: 4)background-clip 和 background-origin 的区别
    webstrom 里面使用github
  • 原文地址:https://www.cnblogs.com/llb123/p/13398742.html
Copyright © 2011-2022 走看看