程式設計 C 動態規劃演算法 編輯距離問題

2022-05-18 10:06:07 字數 983 閱讀 3847

問題描述

設 a 和 b 是

2 個字串。要用最少的字元操作將字串

a 轉換為字串

b。這裡所說的字元操作包括:(1)刪除乙個字元;

(2)插入乙個字元;

(3)將乙個字元改為另乙個字元。將字串 a 變換為字串 b 所用的最少字元運算元稱為字串a到

b 的編輯距離,記為

d(a, b) 。試設計乙個有效演算法,對任給的2 

個字串a和

b,計算出它們的編輯距離

d(a,b)

。程式設計任務

對於給定的字串a

和字串

b,程式設計計算其編輯距離

d(a,b)。樣例

例如,字串fxpimu

和字串

xwrs

的對齊方式為

fxpimu

-xwrs-

因此,二者的編輯距離為5

。源程式**如下:

源程式**

1 #include 

2 #include 3 #include 4

using

namespace

std;

56 ifstream fin("

f:\\input.txt");

7 ofstream fout("

f:\\output.txt");

89string

s1,s2;

1011

12int min(int a, int b, int

c)13

1718

19void distance(int lens1, int

lens2)

2043}44

for(int i=0; i<=lens1; i++)

4550 fout<

52 fout

5455

intmain()

56

動態規劃演算法

一 動態規劃演算法原理 將待求解的問題分解成若干個相互聯絡的子問題,先求解子問題,然後從這些子問題的解得到原問題的解 對於重複出現的子問題,只在第一次遇到的時候對它進行求解,並把答案儲存起來。了不去求解相同的子問題,引入乙個陣列,把所有子問題的解存於該陣列中,這就是動態規劃所採用的基本方法。動態規劃...

動態規劃演算法

動態規劃 通過把原問題分解為相對簡單的子問題來求解複雜問題。動態規劃常常適用於有重疊子問題和最優子結構性質的問題。演算法總體思想 演算法的基本步驟 演算法的基本要素 最優子結構 重疊子問題 備忘錄方法 問題描述 子串行 公共子串行 最長公共子串行 lcs 問題 問題分析 動態規劃求解lcs問題 最長...

動態規劃演算法

動態規劃演算法的思路 動態規劃法即 dynamic programming method dp 是系統分析中的種常用方法。動態規劃法是20世紀50年代由貝爾曼 r.bellman 等人提出的,用來解決多階段決策過程問題的一種最優化方法。多階段決策過程是指把研究問題分成若干個相互聯絡的階段,由每個階段...