最小編輯距離

定義:兩個字串之間堵漱,由一個轉(zhuǎn)成另一個所需的最少編輯操作次數(shù)综慎,如果它們的距離越大,說明它們越是不同怔锌。許可的編輯操作包括將一個字符替換成另一個字符寥粹,插入一個字符变过,刪除一個字符。

作用:比較兩個字符串的相似度

算法步驟:
1.str1或str2的長度為0返回另一個字符串的長度涝涤。
2.初始化(n+1) * (m+1)的矩陣d,并讓第一行和列的值從0開始增長阔拳。掃描兩字符串(n * m級的)崭孤,如果:str1[i] == str2[j],用temp記錄它糊肠,為0辨宠。否則temp記為1。然后在矩陣d[i,j]賦于d[i-1,j]+1 货裹、d[i,j-1]+1嗤形、d[i-1,j-1]+temp三者的最小值。
3.掃描完后弧圆,返回矩陣的最后一個值d[n][m]即是它們的距離赋兵。

舉例:str1和str2分別為“ivan1”和“ivan2”
1、第一行和第一列的值從0開始增長



2搔预、舉證元素的產(chǎn)生 Matrix[i - 1, j] + 1 ; Matrix[i, j - 1] + 1 ; Matrix[i - 1, j - 1] + t 三者當(dāng)中的最小值



3霹期、依次類推直到矩陣全部生成

python實(shí)現(xiàn):

def EditDistance(str1, str2):
    len1 = len(str1)
    len2 = len(str2)

    if len1 == 0:
        return len2
    elif len2 == 0:
        return len1

    # 矩陣初始化
    array = [[0 for _ in range(len1+1)] for _ in range(len2+1)]
    for i in range(len1+1):
        array[0][i] = i
    for i in range(len2+1):
        array[i][0] = i

    for i in range(1, len2+1):
        for j in range(1, len1+1):
            if str1[i-1] == str2[j-1]:
                temp = 0
            else:
                temp = 1
            array[i][j] = min(array[i-1][j]+1, array[i][j-1]+1, array[i-1][j-1]+temp)

    return array[len2][len1]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拯田,隨后出現(xiàn)的幾起案子历造,更是在濱河造成了極大的恐慌,老刑警劉巖船庇,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吭产,死亡現(xiàn)場離奇詭異,居然都是意外死亡溢十,警方通過查閱死者的電腦和手機(jī)垮刹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來张弛,“玉大人荒典,你說我怎么就攤上這事⊥萄迹” “怎么了寺董?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刻剥。 經(jīng)常有香客問我遮咖,道長,這世上最難降的妖魔是什么造虏? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任御吞,我火速辦了婚禮麦箍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘陶珠。我一直安慰自己挟裂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布揍诽。 她就那樣靜靜地躺著诀蓉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪暑脆。 梳的紋絲不亂的頭發(fā)上渠啤,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音添吗,去河邊找鬼沥曹。 笑死,一個胖子當(dāng)著我的面吹牛碟联,可吹牛的內(nèi)容都是我干的架专。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼玄帕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了想邦?” 一聲冷哼從身側(cè)響起裤纹,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丧没,沒想到半個月后鹰椒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呕童,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年漆际,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夺饲。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡奸汇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出往声,到底是詐尸還是另有隱情擂找,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布浩销,位于F島的核電站贯涎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏慢洋。R本人自食惡果不足惜塘雳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一陆盘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧败明,春花似錦隘马、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至盈包,卻和暖如春沸呐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呢燥。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工崭添, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叛氨。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓呼渣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寞埠。 傳聞我的和親對象是個殘疾皇子屁置,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容