從編輯距離問題中看到字串DP的一些小細節

2021-08-20 07:02:11 字數 518 閱讀 8713

我re了好幾次,後來才發現我在dp部分時,是為了」string的下標從0開始,因而我dp迴圈也要從0到n-1「(這是錯誤的想法)

這樣會陣列越界,因為遞推dp一定有乙個i-1,那麼如果i從0開始,就會訪問負下標,導致re

所以dp的迴圈變數無論如何都應該從1開始,訪問字串時i-1就是了,不能為了訪問字串方便導致出bug

#include 

#include

#include

#include

using

namespace

std;

#define debug(x) cerr << #x << "=" << x << endl;

string a, b;

int n,m,f[2010][2010];

int main()

}cout

<< f[n][m];

}

編輯字串距離

題目 題意 編輯距離,又稱levenshtein距離 也叫做edit distance 是指兩個字串之間,由乙個轉成另 乙個所需的最少編輯操作次數。許可的編輯操作包括將乙個字元替換成另乙個字元,插入乙個字元,刪 除乙個字元。例如將kitten轉化成sitting sitten k s sittin ...

字串編輯距離

題目描述 給定乙個源串和目標串,能夠對源串進行如下操作 在給定位置上插入乙個字元 替換任意字元 刪除任意字元 寫乙個程式,返回最小運算元,使得對源串進行這些操作後等於目標串,源串和目標串的長度都小於2000。關於字串最短編輯距離的解題思路 給定相關資料的定義 mep i j 表示源字串source ...

字串編輯距離

給出兩個單詞word1和word2,寫乙個函式計算出將word1 轉換為word2的最少操作次數。你總共三種操作方法 1 插入乙個字元 2 刪除乙個字元 3 替換乙個字元 格式 輸入行輸入兩個字串 word1 和 word2,最後輸出將 word1 轉換為 word2的最少操作次數 樣例輸入 wor...