2017-11-25 184 views
2

我想比较两个字符串之间的相似性。我做到了成功importSequenceMatcher两个字符串之间的相似

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

我)这意味着第二个字符串包含第一的字符串中。例如:咂嘴MAC

ⅱ)几乎良好这意味着包含在第一串第二字符串的一部分。例如:smacksmart。 两者都有60%的相似性,应该归类为差不多。

iii)不好这意味着第一个字符串中包含的第二个字符串中没有任何元素。例如:面包车

但是,如果我想没有importhing 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') 

非常感谢!

+2

请发表您的代码 –

+0

对不起,我是比较新的堆叠交换,我应该编辑自己的帖子,并贴在它整个代码? 对不起混淆 –

+2

我编辑你的代码 –

回答

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') 
+0

感谢您的解决方案和编辑。完美的作品!再次感谢! –

+0

我可以知道我应该怎么做才能限制字符串1的值之间的差异。你写的代码返回几乎很好,即使对于很多和火星 –

+0

这意味着,在n值的差异最多允许不同 –

相关问题