2015-11-02 136 views
-5

我正在學習面試並遇到此問題。填寫空白字符串

基本上,你有一個單詞,它有像c_t一樣的空格。

你有一個單詞庫,必須找到所有可能的單詞,可以使用給定的字符串。因此,在這種情況下,如果貓在銀行一詞,我們將返回true。

解決這個問題的任何幫助(如讚賞最佳算法)。

我認爲我們可以從檢查單詞庫中的字符串長度開始,然後以某種方式使用散列表。

+0

到目前爲止你寫的代碼是什麼? –

+2

請添加一個[最小化,完整和可驗證的示例,簡稱MCVE](http://stackoverflow.com/help/mcve)。 –

+0

我不知道如何解決這個問題,這就是爲什麼我問。我想用hashmap解決它,但不知道如何開始。 – hockeybro

回答

0

步驟1.)消除單詞本中與指定長度不相同的所有單詞。

第2步。)消除銀行中所有沒有相同開始序列和結束序列的單詞。

步驟3)如果指定的字符串是支離破碎像c_ter_il_ar,對留在它是否包含在那些完全一樣的指標,如teril,淘汰那些不具備它的孤立序列的銀行支票每個字

步驟4)此時留在銀行的所有字都是可行的解決方案,因此,如果該行非空返回true

+0

這是一個很好的算法。如果有人有效率更高,請發佈。 – hockeybro

+0

根據單詞庫的大小,最後可能會更有效地將所有這些步驟強加給每個單詞,以減少遍歷列表所需的時間。此外,如果單詞庫已排序,則可以使用二進制搜索算法進一步縮短讀取時間 – stanfordude

0

這可能取決於你的僱主是在尋找...創造力,算法知識,掌握數據結構?一種現成的解決方案是將下劃線替換爲任何空格,並在SQL查詢中使用LIKE子句。

SELECT word FROM dictionary WHERE word LIKE 'c_t';應該返回「cat」,「cot」和「cut」。

如果您正在對您的分治能力進行評估,那麼您應該能夠推斷是否需要更多的工作來提取候選單詞列表並根據您的標準評估每個單詞,或者生成候選列表從您的標準中選擇單詞並根據您的詞典評估每個單詞