题目描述
大佬代码
import os
import sysdef find(n):k = 0for num in range(12345678,98765433):str1 = ["2","0","2","3"]for x in str(num) :if x in str1:if str1[0] == x:str1.pop(0)if len(str1) != 0:k+=1print(k)print(85959030)
详细解释
k = 0
: 初始化计数器k
为0。for num in range(12345678,98765433)
: 遍历从12345678
到98765432
的所有整数。str1 = ["2","0","2","3"]
: 在每次循环开始时,都重新初始化str1
为["2","0","2","3"]
。for x in str(num) :
: 遍历当前整数num
的每一位数字。if x in str1:
: 检查当前的数字x
是否在str1
中。if str1[0] == x:
: 如果x
等于str1
的第一个元素,执行下一步。str1.pop(0)
: 从str1
中移除第一个元素。
整体思路
如果在一串数字中遍历到了2023中的某一个数字,将列表中的对应的那个数字删除.
如果队列空了就说明这串数字包含了2023,如果队列不空就说明这串数字不完全包含
设置计数器统计队列不空的个数。
通过嵌套一层层的 if 条件来寻找一串数字是否包含2023 。