字符串B在A中的数量

问题

题目:
拿到了国一秘籍碎片的小紫仿佛已经胜券在握,于是他抽出了自己宝贵的刷题时间想再次和你玩一些游戏(只是为了防止你偷偷卷,找你玩游戏来骗你不让你卷)。这个游戏是这样的,小紫会告诉你两个纯字母的字符串A和B,他想让你立刻反应出B在A中出现的次数(A 中不同位置出现的 B 可重叠)。但是小紫并不想这个游戏这么简单,他有的时候会在题目里埋一点雷,如果他在字符串A 中藏了一些数字,你也要立刻反应过来,直接输出-1

img

用代码块功能插入代码

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])}次")


这样?

img


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))





```相信能够有所帮助