Mais conteúdo relacionado
DP(編集距離)とDPの問題を解くコツ
- 7. int ld(string s1, string s2){
int dp[MAX_S+1][MAX_S+1];
int l1 = s1.size(), l2 = s2.size();
REP(i,l1+1) dp[i][0] = i; REP(i,l2+1) dp[0][i] = i;
FOR(i,1,l1+1){
FOR(j,1,l2+1){
int cost = s1[i-1] == s2[j-1] ? 0 : 1;
dp[i][j] = min({dp[i-1][j]+1, // Insertion
dp[i][j-1]+1, // Deletion
dp[i-1][j-1]+cost}); // Replace
}
}
return dp[l1][l2];
}
- 10. 参考
● プログラミングコンテンストチャレンジブック 第2版
ISBN: 978-4-8399-4106-2
● 動的計画法が苦手な人が、動的計画法が超苦手な人へアドバイスしてみる
http://shindannin.hatenadiary.com/entry/20131208/1386512864
● 編集距離 (Levenshtein Distance)
http://d.hatena.ne.jp/naoya/20090329/1238307757