剛才在剛果準備挑戰最小運算元的。可是操作失誤,調教了白**。
在自己電腦上用c#環境試了試。竟然花了3個小時,哎,挑戰也是失敗了。
題目詳情
給了a、b兩個單詞和乙個單詞集合dict,每個的長度都相同。我們希望通過若干次操作把單詞a變成單詞b,每次操作可以改變單詞中的乙個字母,同時,新產生的單詞必須是在給定的單詞集合dict中。求所有行得通步數最少的修改方法。
舉個例子如下:
given:
a = "hit"
b = "cog"
dict = ["hot","dot","dog","lot","log"]
return
[["hit","hot","dot","dog","cog"],
["hit","hot","lot","log","cog"]
]即把字串a = "hit"轉變成字串
b = "cog",有以下兩種可能:
"hit" -> "hot" -> "dot" -> "dog" -> "cog";
"hit" -> "hot" -> "lot" -> "log" ->"cog"。
我的思路:
首先是理想狀態查詢:
1,a和b先比較一下,有k個不同的字母,所以最小轉換次數就是k了。
2,在dict中尋找與a相差乙個字母的單詞,和b有乙個相同的單詞。
3,一直迴圈,就能找到最小路徑。
所以在最理想狀態尋找失敗的情況下,在dict中尋找與a相差乙個字母的單詞,代替a,重複理想狀態查詢。
源**如下:
第一次寫這些東西,也不知道有沒有人看。
最小運算元
給了a b兩個單詞和乙個單詞集合dict,每個的長度都相同。我們希望通過若干次操作把單詞a變成單詞b,每次操作可以改變單詞中的乙個字母,同時,新產生的單詞必須是在給定的單詞集合dict中。求所有行得通步數最少的修改方法。舉個例子如下 given a hit b cog dict hot dot do...
最小運算元遞迴實現
題目 給了a b兩個單詞和乙個單詞集合dict,每個的長度都相同。我們希望通過若干次操作把單詞a變成單詞b,每次操作可以改變單詞中的乙個字母,同時,新產生的單詞必須是在給定的單詞集合dict中。求所有行得通步數最少的修改方法。舉個例子如下 given a hit b cog dict hot dot...
25最小運算元問題
題目描述 給定乙個單詞集合dict,其中每個單詞的長度都相同。現從此單詞集合dict中抽取兩個單詞a b。希望通過若干次操作把單詞a變成單詞b,每次操作可以改變單詞的乙個字母,同時,每次操作後,新產生的單詞必須是在給定的單詞集合dict中。求所有行得通步數最少的修改方法。舉個例子如下 given a...