题目描述

大佬代码
python
import os
import sys
def find(n):
k = 0
for 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+=1
print(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 。