回答
對於初學者,假設你在散列表中有一個單詞w,並且你的單詞是x。當且僅當w是x的子序列時,可以刪除x中的字母形成w,在這種情況下,需要從x中刪除以形成w的字母數由| x - w |給出。所以肯定有一種選擇是迭代散列表,併爲每個單詞查看x是否是該單詞的子序列,並在表中找到您找到的最佳匹配。
爲了分析這個操作的運行時間,我們假設你的散列表中有n個總字數,並且它們的總長度是L.然後這個操作的運行時間是O(L),因爲你將分別處理所有單詞最多隻有一次。您的初始方法的複雜性是O(| x |· 2 | x |),因爲有2 | x |您可以通過從x中刪除字母來創建可能的單詞,並且您將花費O(| x |)時間處理每個單詞。根據字典的大小和字的大小,一種算法可能比另一種算法更好,但我們可以說運行時間是O(min {L,| x |· 2 | x |)if你採取了兩種方法中更好的方法。
謝謝你解釋。只有一件事,當你說「你可以從x中刪除字母形成w當且僅當x是w的子序列」時,你的意思是iff w是x右邊的子序列? – Weltschmerz
@Weltschmerz是的...讓我解決這個問題。 :-) – templatetypedef
與我在答案上的觀點相似,如果您可以從單詞中間刪除字符,這將無法正常工作,對吧? – JimmyJames
您可以構建一個trie,然後查看給定單詞適合的位置。您單詞的深度與最近的父母的差異在於所需的刪除次數。
你確定這可以嗎?如果optima的選擇是刪除單詞中的第一個字母,那麼你最終會搜索錯誤的子樹。 – templatetypedef
好點。我認爲刪除是從結尾,但它並沒有說這個問題。 – JimmyJames
- 1. Eclipse刪除單詞行爲
- 2. Marklogic值詞典和單詞詞典
- 3. 基於Python中的詞典值從字符串數組中刪除單詞?
- 4. 生成相關單詞詞典
- 5. 通過字詞表從字符串中刪除特定單詞
- 6. Python-什麼單詞可以刪除最連續的字母,仍然是字典有效的單詞?
- 7. PyEnchant將字典中的單詞「糾正」爲不在字典中的單詞
- 8. 正則表達式|刪除給定單詞前多行的單詞
- 9. 找出一個單詞是否可以成爲詞典中單詞的開頭
- 10. 從文本中刪除單詞/數字
- 11. 刪除特定單詞後的兩個單詞
- 12. Python:從給定的字符串中刪除單詞
- 13. 維基詞典:獲取給定單詞的頁面列表
- 14. 如何在給定單詞的單詞袋詞彙中獲得單詞的id?
- 15. 在詞彙表中刪除一次出現的單詞TF-IDF
- 16. 從特定單詞開始後刪除所有單詞
- 17. 刪除單詞用的sed
- 18. 刪除DocumentTermMatrix中的單詞
- 19. 當它是單詞最後刪除'e'
- 20. 刪除包含特定單詞(字母和數字)的行
- 21. 刪除文字c中的單詞#
- 22. 刪除字符串中的單詞(RemoveString)
- 23. 刪除單詞末尾的字母
- 24. 刪除字符串中的單詞iplescript
- 25. 刪除字符串中的單詞Powershell
- 26. 清除詞典的字典
- 27. 刪除文件中的特定單詞
- 28. 刪除包含特定單詞的列
- 29. 如何從cmusphinx的字典中刪除單詞?
- 30. Python中,以字典,並與(詞> 1,最常見的字,最長的單詞)
如果單詞可以在字典中 - 0,如果單詞肯定不是在字典中 - 1 –
我不認爲你的問題是有道理的。我猜你正在使用同一個詞:'詞典'表示兩種不同的東西。否則,我不知道你在問什麼。 – JimmyJames
@JimmyJames你有一個包含有效單詞的散列表(查找花費O(1))。程序需要找到某些給定字(String w)所需的最少刪除次數,以便從哈希表中轉換爲一個字。不知道如何更好地解釋。 – Weltschmerz