赞
踩
问题描述:
请求出在 12345678(含)至98765432(含)中,有多少个数中完全不包含2023。完全不包含2023是指无论将这个数的哪些数位移除都不能得到2023。例如20322175、33220022都完全不包含2023,而20230415,20193213则含有2023(后者取第1,2,6,8个数位)
关键是认识 find函数。
若包含子串,则返回所在字符串第一个位置的下标
若不包含子串,返回-1
语法:str.find(str, beg=0, end=len(string))
str : 指定检索的字符串(子串)
beg :开始索引,默认为0。
end :结束索引,默认为字符串的长度。
举例:
>>>info = 'abca'
>>> print(info.find('a')) # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
>>> print(info.find('a', 1)) # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
>>> print(info.find('3')) # 查找不到返回-1
>>>print(info.find('abcac')) # 子串比原字符串长,返回-1
完整代码如下:
- def find_i(i):
- find_1 = i.find('2')
- if find_1 == -1:
- return 0
-
- find_2 = i.find('0',find_1+1)
- if find_2 == -1:
- return 0
-
- find_3 = i.find('2',find_2+1)
- if find_3 == -1:
- return 0
-
- find_4 = i.find('3',find_3+1)
- if find_4 == -1:
- return 0
-
- return 1
-
- ans = 0
- for i in range(12345678,98765432+1):
- if find_i(str(i)) == 0:
- ans += 1
-
- print(ans)
参考:1.Python中的find()函数_python find-CSDN博客 2.蓝桥杯真题题解——来一瓶养乐多
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。