判断近似字符串(相差一个字符)

要求:写一个函数用于判断两个字符串中任意一个字符串,是否可以通过增删改操作变成另一个字符串,结果返回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)

你可能感兴趣的:(simple_example)