Python|力扣周考——顺次表
  TEZNKK3IfmPf 2023年11月15日 60 0

问题描述

我们定义「顺次数」为:每一位上的数字都比前一位上的数字大1的整数。请你返回由[low, high] 范围内所有顺次数组成的有序列表(从小到大排序)。

示例 1:

输出:low = 100, high = 300

输出:[123,234]

示例 2:

输出:low = 1000, high = 13000

输出:[1234,2345,3456,4567,5678,6789,12345]

解决方案

我们从提也可以看出我们需要的数字是后一位比前一位大1,我们利用这个特点,假如一个数为四位数,我们根据规律按位置顺序对其分别对其进行相减,便可以得到三个“1”,假如原数为五位数,则得到四个“1”,以此类推,将这些“1”放入一个列表中。我们根据原数的长度创建一个与理想结果长度相同的只含“1”的新列表。遍历范围内的所有数字,如果两列表相同,则这个数满足我们要求的要求,将其填入列表等待输出。

Python代码


def sequentialDigits(low, high):

     num_list =[]  #装满足条件的数字的列表


     for num in range(low,high+1):

         new_num = str(num)

         lenth = len(new_num)

         a = [1] *(lenth-1) #想得到的理想列表

         list1 = [(int(new_num[i]) - int(new_num[i-1])) for i in  range(1,lenth)]#创建列表得我们球的数字中的“1”


         if list1 == a :

            num_list.append(num)

     return num_list


if __name__ == "__main__":

     print(sequentialDigits(1000,13000))#运行程序

             print(sequentialDigits(100,300))


最后通过这样的比对得到我们要的列表结果:

Python|力扣周考——顺次表_二维码_02

温馨提示:点击页面右下角发表评论,期待您的参与!期待您的转发!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   37   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   27   0   0 python
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
TEZNKK3IfmPf