我想知道破解这个问题的计算效率最高的Python方法是什么。
假设你有两个字符串(或者拆分这些字符串的列表 - 无所谓),“这是正确的字符串”vs“这是正确的字符串。”
我们假设第一个字符串始终是正确的,并且将根据按正确顺序排序的单词将分数分配给第二个字符串。对于上面两个字符串,我们将分配0.6(因为5个单词中只有3个位于正确的位置)。
最佳, 乔治娜
答案 0 :(得分:2)
这听起来非常像家庭作业。试着考虑一下。是否足以遍历一次正确的单词列表,并检查第二个列表中的相应单词是否等于正确列表中的单词?
我可能会在python中压缩列表并比较这些对是否相等。
答案 1 :(得分:0)
a = "this is the right string"
b = "this is right the string"
sum([1 for i,v in zip(a.split(), b.split()) if i == v])
答案 2 :(得分:0)
sum(f == s for f, s in zip(first, second)) / len(first)
答案 3 :(得分:0)
使用ord()
将每个字符转换为整数值(其序数值),然后使用按位运算符^
对每个字符进行异或。如果字符相同,则XOR操作将返回0
(零),然后使用|=
将返回值与result
按位或,然后将操作结果保存为{ {1}}。如果迭代所有字符后result
仍为零,则字符串是等效的。
result