zoukankan      html  css  js  c++  java
  • lintcode入门篇十

    420. 报数

    中文English

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

    1, 11, 21, 1211, 111221, ...

    1 读作 "one 1" -> 11

    11 读作 "two 1s" -> 21

    21 读作 "one 2, then one 1" -> 1211

    给定一个整数 n, 返回 第 n 个顺序。

    样例

    样例 1:

    输入:1
    输出:"1"
    

    样例 2:

    输入:5
    输出:"111221"
    

    注意事项

    整数的顺序将表示为一个字符串。

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        '''
        大致思路:
        1.首先考虑怎么当前需要报的数得到的是多少getAndSay(),重点
        2.然后进行循环,第一个值已经固定origin为1,之后的值循环调用
        '''
        def countAndSay(self, n):
            ##第一个为1,固定值
            origin = 1
            #循环调用
            for i in range(1,n):
                origin = self.getAndSay(origin)
            return str(origin)
    
    
        def getAndSay(self,num):
            p = str(num)[0]##给定初始值str(num)[0],此时该值的count是1
            count = 1 
            res = ''
            s = str(num) + ' '
            for i in range(1,len(s)):
                ##此时是想要替换的时候,进行拼接count和p
                if s[i]!= p:
                    res = res + str(count) + p  
                    p = s[i]##重新赋值p和count
                    count = 1
                ##当s[i]=='',表示的是已经循环到最后了,此时需要加上最后的那个p和count就可以
                elif s[i] == ' ':
                    res = res + str(count) + p  
                ##此时表示的是p仍然与上一个相同,即开始计数
                else:
                    count += 1
            return res

    422. 最后一个单词的长度

    中文English

    给定一个字符串, 包含大小写字母、空格 ' ',请返回其最后一个单词的长度。

    如果不存在最后一个单词,请返回 0 。

    样例

    样例 1:

    输入:"Hello World"
    输出:5
    

    样例 2:

    输入:"Hello LintCode"
    输出:8
    

    注意事项

    一个单词的界定是,由字母组成,但不包含任何的空格。

    class Solution:
        """
        @param s: A string
        @return: the length of last word
        """
        def lengthOfLastWord(self, s):
            # write your code here'
            if s == '':
                return 0
            dic = s.split(' ')
            if ''  in dic:
                dic.remove('')
            return len(dic[-1])

    坑点:
    1.如果s为'hello world '的时候,最后有一个空格,dic的最后一个元素是 '',所以不符合最后一个单词的定义,需要将''的元素给移除掉

    2.如果s为''的话,那么remove掉''的话,dic就是[],空,return dic[-1]就会报错,所以需要判断if s== ''空的时候,返回0.

  • 相关阅读:
    数据脱敏工具类
    oracle根据身份证号码 计算年龄、性别
    mysql 中通过身份证号码计算年龄
    解决POI读取Excel如何判断行是不是为空
    oralce 将浮点型字段,转为指定精度 并且四舍五入
    mysql too many connections
    spring boot @Transactional的一个小坑
    webpack4下url-loader打包图片问题
    使用extract-text-webpack-plugin插件后报错
    MySQL服务意外停止
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12461868.html
Copyright © 2011-2022 走看看