




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
編輯距離問題1題目描述假設(shè)字符串的基本操作僅為:刪除一個字符、插入一個字符和將一個字符修改成另一個字符這三種操作。
我們把進(jìn)行了一次上述三種操作的任意一種操作稱為進(jìn)行了一步字符基本操作。
下面我們定義兩個字符串的編輯距離:對于兩個字符串a(chǎn)和b,通過上述的基本操作,我們可以把a變成b或b變成a,那么字符串a(chǎn)變成字符串b需要的最少基本字符操作步數(shù)稱為字符串a(chǎn)和字符串b的編輯距離。
例如:a=“ABC”,b=“CBCD”,則a與b的編輯距離為2。
你的任務(wù)就是:編寫一個快速的程序來計算任意兩個字符串的編輯距離。輸入輸入包含兩行:第一行為字符串A,第二行為字符串B。
字符串的長度不大于10000,且全為字母。輸出輸出只有一行,為編輯距離。樣例輸入ABC
CBCD樣例輸出22題目分析乍一看仿佛是搜索,但仔細(xì)一想,這道題用搜索是不可能實現(xiàn)的(至少我是這么認(rèn)為的)。那么我們就要采取新的策略:動態(tài)規(guī)劃。我們知道,所有的動規(guī)問題都是可以分段解決的,那么這道題也是如此。我們可以把長的字符串拆解為短的字符串,一直拆解到只剩下一個字符為止。3動態(tài)轉(zhuǎn)移方程的推導(dǎo)判斷啊a、b兩個字符的編輯距離十分簡單:若a=b則編輯距離為0;反之則為1計算字符a與長度為二的字符串b的編輯距離也不難:首先計算a與b[1]的編輯距離,記為f,再判斷a與b[2]是否相同,相同則最終編輯距離為f,不同則為f+1。若b的長度大于2,則該規(guī)律依然成立。
注意:這里出現(xiàn)問題了:假如a=‘a(chǎn)’,b=‘a(chǎn)a’,則它們的編輯距離應(yīng)為1,但通過上述計算得到的結(jié)果為0。4注意這里我們要明確一點,對于任意兩字符串a(chǎn)、b,它們的編輯距離不可能小于它們的長度之差的絕對值。因為對于三種基本操作,它們對字符串長度的影響為±1(插入和刪除)或0(修改)。
舉一個例子:a的長度la=9,b的長度lb=15
則a、b的編輯距離m≥abs(la-lb)
即m≥65動態(tài)轉(zhuǎn)移方程的推導(dǎo)解決了上面一個問題,我們繼續(xù)。
剛才我們已經(jīng)分析出了兩個字符的編輯距離和一個字符與一個字符串的編輯距離,接下來便是兩個字符串的編輯距離。假如a=‘a(chǎn)b’,b=‘cd’,則一眼就可以看出編輯距離m=2。這是沒有重復(fù)字母的情況下。但是如果有重復(fù)字母呢?
6動態(tài)轉(zhuǎn)移方程的推導(dǎo)若a=‘a(chǎn)b’,b=‘bc’,則它們的編輯距離m=2若a=‘a(chǎn)b’,b=‘cb’,則它們的編輯距離m=1若a=‘a(chǎn)b’,b=‘a(chǎn)b’,則它們的編輯距離m=0若a=‘a(chǎn)bc’,b=‘cba’,則它們的編輯距離m=2若a=‘a(chǎn)bc’,b=‘cab’,則它們的編輯距離m=2若a=‘a(chǎn)bc’,b=‘bac’,則它們的編輯距離m=2若a=‘a(chǎn)bc’,b=‘bcd’,則它們的編輯距離m=2這有什么規(guī)律呢?7動態(tài)轉(zhuǎn)移方程的推導(dǎo)我們把上面的幾種情況繪成表格:
8動態(tài)轉(zhuǎn)移方程通過觀察表格我們可以發(fā)現(xiàn)以下規(guī)律:對于表格f,f[j,k]表示a的前j個字符到b的前k個字符的編輯距離①若a[j]≠b[k]
則f[j,k]為f[j-1,k-1]、f[j-1,k]、f[j,k-1]三個數(shù)中最小數(shù)+1②若a[j]=b[k]
則f[j,k]=f[j-1,k-1]最終結(jié)果為f[la,lb](la、lb為字符串長度)9邊界問題對于方程①
若j=1且k≠1則f[j,k]=f[j,k-1]+1
若k=1且j≠1則f[j,k]=f[j-1,k]+1
若j=1且k=1則f[1,1]=1對于方程②
若j=1且k≠1則f[j,k]=f[j,k-1]
若k=1且j≠1則f[j,k]=f[j-1,k]
若k=1且j=1則f[1,1]=010程序設(shè)定programbjjl;consti_f='bjjl.in';o_f='bjjl.out';maxx=10000;typesz=array[1..maxx]ofchar;dt=array[1..maxx,1..maxx]ofinteger;vara,b:sz;f:dt;la,lb,j,k:integer;{數(shù)組長度}{存放字符串,string型存不到1萬}{動態(tài)規(guī)劃二維表}{a、b字符串}{動規(guī)二維表}{la、lb字符串長度,j、k循環(huán)控制變量}11min函數(shù)functionmin:integer;vart:integer;beginif(j=1)and(k=1)thenmin:=0elseifj=1thenmin:=f[j,k-1]elseifk=1thenmin:=f[j-1,k]elsebeginiff[j-1,k]>f[j,k-1]thent:=f[j,k-1]elset:=f[j-1,k];iff[j-1,k-1]<tthenmin:=f[j-1,k-1]elsemin:=t;end;end;{用于方程①}{t:臨時變量}{這三行是處理邊界問題}{找最小}12fid函數(shù)functionfid:integer;vart:integer;beginif(j=1)and(k=1)thent:=0elseifj=1thent:=f[j,k-1]elseifk=1thent:=f[j-1,k]elset:=f[j-1,k-1];ift<abs(j-k)thenfid:=abs(j-k)elsefid:=t;end;{用于方程②}{t:臨時變量}{處理邊界問題}{處理注意事項}13程序主體la:=0;lb:=0;repeatinc(la);read(a[la]);untileoln;readln(b[1]);repeatinc(lb);read(b[lb]);untileoln;forj:=1toladofork:=1tolbd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天津市安全員知識題庫
- 重慶工程職業(yè)技術(shù)學(xué)院《朗讀與講故事指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南民族大學(xué)《古生物學(xué)含實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 南京農(nóng)業(yè)大學(xué)《教育評價與測量》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱劍橋?qū)W院《廣告創(chuàng)意與策劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西體育高等專科學(xué)?!峨姶艌隼碚撆c光波導(dǎo)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆河南省周口市西華縣三校聯(lián)考高三上學(xué)期一模歷史試卷
- 贛南師范大學(xué)《幼兒園體育游戲》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇聯(lián)合職業(yè)技術(shù)學(xué)院《分子生物學(xué)(英文)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城建職業(yè)學(xué)院《銷售管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025甘肅省事業(yè)單位聯(lián)考招聘(3141人)高頻重點提升(共500題)附帶答案詳解
- JJF 1176-2024(0~2 300) ℃鎢錸熱電偶校準(zhǔn)規(guī)范
- 8.4+同一直線上二力的合成課件+2024-2025學(xué)年人教版物理八年級下冊
- 2024年河北省邢臺市公開招聘警務(wù)輔助人員(輔警)筆試專項訓(xùn)練題試卷(2)含答案
- 家政公司服務(wù)員考試題庫單選題100道及答案解析
- 人工智能:AIGC基礎(chǔ)與應(yīng)用 課件 實訓(xùn)項目九 使用度加創(chuàng)作工具和剪映進(jìn)行智能化短視頻創(chuàng)作
- 《日影的朝向及長短》課件
- 中職普通話教師教案模板
- 施工后期的場地恢復(fù)措施
- 七年級歷史下冊 第一單元 隋唐時期繁榮與開放的時代 第1課 隋朝的統(tǒng)一與滅亡說課稿1 新人教版
- 智能教育機器人AI項目策劃創(chuàng)業(yè)計劃書
評論
0/150
提交評論