Sicily 1006 單詞變換

2021-08-03 03:30:33 字數 994 閱讀 2883

對於兩個只含有小寫英文本母(』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手裡。兩種傳球的方法被視作不同的...