两个字符串之间的相似之处

时间:2017-11-25 11:50:08

标签: python string

我试图比较两个字符串之间的相似之处。我是通过import SequenceMatcher

成功完成的

结果应该只返回3种可能性,

i)表示第二个字符串包含在第一个字符串中。例如: smack mac

ii)几乎好,这意味着第一个字符串中包含第二个字符串的一部分。例如: smack smart 。 两者都是60%相似,应该被归类为差不多好。

iii)错误表示第一个字符串中包含的第二个字符串中没有元素。例如: smack van

但是,如果我想在不导入SequenceMatcher的情况下执行相同的任务,我将如何执行它?我坚持写一个算法来切割字符串并将其与另一个进行比较。另外,有没有定义算法SequenceMatcher?

这是指向我的代码的链接

Sa=input('enter something A: ')
Sb=input('enter something B: ')
Sc=Sa.lower()
Sd=Sb.lower()
from difflib import SequenceMatcher
if Sd in Sc or SequenceMatcher(a=Sc,b=Sd).ratio() ==1:
    print('Good') 

if Sd not in Sc and 0<SequenceMatcher(a=Sc,b=Sd).ratio() <1:
    print('Almost Good')

if SequenceMatcher(a=Sc,b=Sd).ratio() ==0:
    print('Bad')

非常感谢!

1 个答案:

答案 0 :(得分:0)

我使用if-elif代替If

Sa=raw_input('enter something A: ')
Sb=raw_input('enter something B: ')
Sc=Sa.lower()
Sd=Sb.lower()

count = 0
for val in Sc:
    for char in Sd:
        if char == val:
            count = count + 1

if count == 0:
    print("Bad")
elif Sc in Sd or Sd in Sc:
    print('Good')
else:
    print('Almost Good')