要求:写一个函数用于判断两个字符串中任意一个字符串,是否可以通过增删改操作变成另一个字符串,结果返回Boolean
示例:
aaas与aaa 返回 True
asaa与aa 返回 False
args与argt 返回 True
arg与args 返回 True
以下为自己用简单语法写的判断方法,用博客记录以下:
def isStringAlike(str1,str2):
"""
函数功能:判断两个字符串中任意一个字符串,
是否可以通过增删改操作变成另一个字符串,
结果返回Boolean
"""
count = 0
temp = ''
#始终保持str1为两字符串中的长串
#temp用于占位,可以设置为任意字符
if len(str1) < len(str2):
str1, str2 = str2, str1
temp = '-'
if len(str1) > len(str2):
temp = '-'
#避免短字符串索引越界
str2 = str2 + '-'
#循环遍历长字符串
for i in range(len(str1)):
if str1[i] == str2[i]:
count += 1
else:
#重新拼接字符串
str2 = str2[:i]+temp+str2[i:]
#判断两字符串是否为近似串,返回值为布尔类型
if len(str1) == count + 1:
return True
else:
return False
if __name__ == '__main__':
str1 = 'snapchat'
str2 = 'snapchat5'
res = isStringAlike(str1,str2)
print(res)