题目:
拿到了国一秘籍碎片的小紫仿佛已经胜券在握,于是他抽出了自己宝贵的刷题时间想再次和你玩一些游戏(只是为了防止你偷偷卷,找你玩游戏来骗你不让你卷)。这个游戏是这样的,小紫会告诉你两个纯字母的字符串A和B,他想让你立刻反应出B在A中出现的次数(A 中不同位置出现的 B 可重叠)。但是小紫并不想这个游戏这么简单,他有的时候会在题目里埋一点雷,如果他在字符串A 中藏了一些数字,你也要立刻反应过来,直接输出-1
n = int(input())
Q = []
for i in range(n):
t = 0
while True :
A = input("")
for x in A:
if '0'<=x<='9':
Q.append(-1)
t = 1
break
if A.isalnum() == False :
continue
else:
break
B = input("")
if t == 1:
continue
count = 0
R = 0
while True:
C = f'0{B[1::]}'
if B in A :
A = A.replace(B, C,1)
count += 1
else :
break
Q.append(count)
for i in Q:
print(i)
测试存在运行错误,时间过长
i = "This is a pen is a pen1"
def contains_number(string):
return any(char.isdigit() for char in string)
n = int(input("你要给出几组测试数据呢?:"))
Q = []
for i in range(n):
A = input("请输入字符串A:")
B = input("请输入字符串B:")
Q.append((A, B))
for j in Q:
if contains_number(j[0]):
print(-1)
else:
print(f"字符串{j[1]}在{j[0]}中出现了:{j[0].count(j[1])}次")
这样?
n = int(input())
for i in range(n):
A = input()
B = input()
for i in A:
if i.isdigit():
print("-1")
break
print(1)
num = 0
le = len(B)
for k in range(len(A)-le):
if B[0] == A[k] and B == A[k:(k+le)]:
num += 1
print(num)
def contains_number(string):
return any(char.isdigit() for char in string)
n = int(input(""))
Q = []
for i in range(n):
A = input("")
B = input("")
Q.append((A, B))
for j in Q:
if contains_number(j[0]):
print(-1)
else:
R=[]
for i in range(len(j[0])):
if j[0][i:i+len(j[1])]==j[1]:
R.append(i)
print(len(R))
```相信能够有所帮助