對於兩個只含有小寫英文本母(』a』-『z』)的單詞word1和word2,你可以對word1進行以下3種操作:
1) 插入乙個字母;
2) 刪除乙個字母;
3) 替換乙個字母.
請計算將word1變換成word2的最少運算元.
word1和word2的長度均不大於1000.
請為下面的solution類實現解決上述問題的函式mindistance,函式的引數word1和word2為給出的兩個單詞,返回值為所求最少運算元.
class solution
};
例1:word1 = 「sunny」, word2 = 「snowy」,返回值為3。
例2:word1 = 「abc」, word2 = 「ac」,返回值為1.
注意:你只需要提交solution類的**,你在本地可以編寫main函式測試程式,但不需要提交main函式的**. 注意不要修改類和函式的名稱.
經典動規。
使用乙個二維陣列dp[m][n]
來維護狀態,它表示從乙個長度為m的word1變換到乙個長度為n的word2所需要的最少運算元。
每次將兩個單詞往前看乙個字母,那麼有如下兩種可能。
由於要找的是最小的操作次數,所以,在第二種情況下,取三種子情況的最小值。
// problem#: 20622
// submission#: 5148871
// the source code is licensed under creative commons attribution-noncommercial-sharealike 3.0 unported license
// uri:
class solution
int mindistance(string word1, string word2)
}return dp[m][n];
}};
Sicily 全排序輸出
輸入乙個數字n,輸出從1 n 1 n 10 組成的數字的全排列,每個排列佔一行,輸出按照數值公升序排列 比如輸入3,則輸出是 123132 213231 312321 遞迴演算法。這位大神 include includeusing namespace std void permutation str...
Sicily 八皇后問題
description 給定乙個8 8棋盤,要求在棋盤上放8個皇后,並且各個皇后之間不能相互攻擊。當兩個皇后位於同一行或同一列或同一對角線 有兩條 就會相互攻擊。現在要求大家程式設計輸出8皇后問題的所有解。注意 皇后是逐行放的,也就要求輸出每一行放皇后的列號的序列,行號和列號都是從1開始的 inpu...
sicily 1763傳球遊戲
題目描述 遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以把球傳給自己左右的兩個同學中的乙個 左右任意 當老師再次吹哨子時,傳球停止 問 有多少種不同的傳球方法可以使得從a手裡開始傳的球,傳了m次以後,又回到a手裡。兩種傳球的方法被視作不同的...