有两个非空字符串,一个长的字符串,一个短的字符串。现在要在长串中查找并删除短串,要求删除至多一次

有两个非空字符串,一个长的字符串,一个短的字符串。现在要在长串中查找并删除短串,要求删除至多一次

输入
输入只有一行,共三项,用空格隔开。前两个是字符串,分别是长字符串和短字符串。前者长度大于等于后者的长度,且字符串中不包含空白符。还有一个整数 n,取值为 0 或 1,0 表示至多删除一次,1 表示全部删除。

输出
如果短串包含在长串中,则打印处理后的字符串,否则打印 "Fail to delete"

代码可这样 写:

import re
s1,s2,n=input('输入长、短两个字符串及一个数字(0/1):').split()
m=re.findall(s2,s1)
if m:
    if n=='0':
        res=re.sub(s2,'',s1,1)
    else:
        res = re.sub(s2, '',s1)
    print(res)
else:
    print('Fail to delete')

运行结果:

F:\2021\qa\ot2>t7
输入长、短两个字符串及一个数字(0/1):trabcmgabcxyzabc abc 1 
trmgxyz

F:\2021\qa\ot2>t7
输入长、短两个字符串及一个数字(0/1):abc d 0
Fail to delete

F:\2021\qa\ot2>t7
输入长、短两个字符串及一个数字(0/1):trabcmgabcxyzabc abc 0
trmgabcxyzabc

如有帮助,请点采纳该回答按钮。

你题目的解答代码如下:

s1, s2, n = input().split(" ")
if s2 in s1:
    if n=="0":
        s1 = s1.replace(s2,"",1)
    else:
        s1 = s1.replace(s2,"")
    print(s1)
else:
    print("Fail to delete")

如有帮助,望采纳!谢谢!