最近在做演算法作業,需要比較兩個字串的相似度,並且返回相同的元素所佔的百分比。
如果讓我自己做的話,思路是把兩個字串分別轉化為列表,然後在列表中解決掉。
最主要的是,python原生的模組的效率都比較好。其中none的位置是乙個函式,用來去掉自己不想算在內的元素。比如我想把空格排除在外:new = [i for i,j in zip(a,b) if i == j]
ratio = 2.0 * len(new) / (len(a) + len(b))
seq = difflib.sequencematcher(none, a, b)
ratio = seq.ratio()
seq = difflib.sequencematcher(lambda x:x=" ", a, b)
ratio = seq.ratio()
這樣不用自造輪子了。 求兩個字串的相似度(或距離)
兩個字串距離和相似度的定義 通過修改 增加和刪除操作,使兩個字串變的相等,所做的操作次數為兩個字串的距離,距離加1的倒數為相似度。例如 a abeg b cdeg 通過更改a中的ab cd使兩個字串相等,兩個操作,距離為2。求距離的 如下 int caldistance char a,char b ...
比較兩個字串是否相等
我剛剛才學了組合語言,就寫了乙個很簡單的程式.下面是程式 dseg segment data1 db 9,0,9 dup data2 db 9,0,9 dup cnt db 8 str1 db 13,10,two string is same.str2 db 13,10,two string is ...
sql比較兩個字串 txt
declare stra varchar 100 declare strb varchar 100 declare i int declare issame real select stra abc strb abd i 1,issame 1 while i len stra 1 and i len...