蓝桥杯python寻找2020
时间: 2023-09-20 07:06:51 浏览: 44
题目描述
在一个字符串中寻找2020子串,可以是不连续的子串,但是子串内部的0和2的相对先后顺序不能改变。
输入格式
一个字符串,长度为n(1<=n<=10^6)
输出格式
输出一个整数,表示子串2020的个数
输入样例
2020340202002020
输出样例
3
算法1
(暴力枚举) $O(n^2)$
遍历字符串,对于每一个字符,从当前位置开始向后查找子串2020。
时间复杂度
参考文献
python3 代码
算法2
(暴力枚举的优化) $O(n)$
观察算法1,发现每个字符只会在向后查找子串时被访问一次,因此可以将其优化为只遍历一遍字符串,从而将时间复杂度降为O(n)。
时间复杂度
参考文献
python3 代码
相关问题
2020蓝桥杯python试题
2020蓝桥杯Python试题是蓝桥杯计算机大赛中的一道Python编程题目。该题目要求编写一个程序,查找一个给定数组中是否包含两个数的和等于给定的目标数,并返回这两个数的下标。
首先,我会使用一个双重循环来遍历数组中的每一个元素,然后再遍历该元素之后的每一个元素。在每一次循环中,我会判断两个元素的和是否等于目标数。
若和等于目标数,那么我就找到了满足条件的两个数,将它们的下标记录下来,并结束程序。
若循环结束后仍然没有找到满足条件的两个数,那么我会输出提示信息,表示没有找到满足条件的结果。
以下为示例代码:
```python
def find_target(nums, target):
length = len(nums)
for i in range(length-1):
for j in range(i+1, length):
if nums[i] + nums[j] == target:
return i, j
print("没有找到满足条件的结果")
return -1, -1
nums = [1, 2, 3, 4, 5]
target = 7
index1, index2 = find_target(nums, target)
if index1 != -1:
print("找到了满足条件的两个数,下标分别为", index1, "和", index2)
```
以上就是我对于2020蓝桥杯Python试题的回答,希望能对您有所帮助!
python寻找2020
在Python中,你可以使用以下方法来寻找一个字符串中是否包含特定的子字符串(例如"2020"):
1. 使用in运算符:
```python
string = "Python寻找2020"
if "2020" in string:
print("找到了")
else:
print("未找到")
```
2. 使用find()方法:
```python
string = "Python寻找2020"
if string.find("2020") != -1:
print("找到了")
else:
print("未找到")
```
3. 使用index()方法(如果找不到子字符串,会引发ValueError异常):
```python
string = "Python寻找2020"
try:
index = string.index("2020")
print("找到了")
except ValueError:
print("未找到")
```
以上方法都可以用来判断一个字符串中是否包含特定的子字符串。如果找到了,你可以根据需要进行进一步的处理。