2020蓝桥杯省赛python模拟题:
凯撒密码:
word=input()
word=list(word)
l=len(word)
for i in range(l):
if(ord(word[i])+3<123):
word[i]=chr(ord(word[i])+3)
else:
word[i]=chr(ord(word[i]+3-122+96))
print(''.join(word))
不同子串:
var = '0100110001010001' # var = 'aaab' 运行结果为7 表示算法正确
num = 1 # 自身也是1个,循环中没有去考虑他串本身,所以这里基数直接设置为1
sep = 1
var_n = []
while sep < len(var):
var_n.append(var[0:sep])
for i in range(len(var)-sep): # 以sep为间隔依次向前推进,sep每轮循环增1
if var[i+1:i+sep+1] in var_n:
continue
else:
var_n.append(var[i+1:i+sep+1])
sep += 1
num += len(var_n)
# print(var_n)
var_n = []
print(num)
修改数组
n = int(input())
l = list(map(int,input().split()))
for i in range(1,n):
while l[i] in l[:i]:
l[i] += 1
print(*l)
约数个数
ans = 0
for i in range(1,int(1200000**(1/2))+1):
if 1200000%i == 0:
ans+=2
print(ans)
数位递增
ans = 0
n = int(input())
for s in [str(i) for i in range(1, n + 1)]:
bool1 = True
for j in range(1, len(s)):
if s[j - 1] > s[j]:
bool1 = False
break
if bool1:
ans += 1
print(ans)