我试图比较两个字符串之间的相似之处。我是通过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')
非常感谢!
答案 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')