這是我的第一個關於堆棧溢出的問題。一些快速的背景,這不是一個學校項目,只是爲了好玩,練習和學習。我正在嘗試在C中製作一個拼寫檢查器。我遇到的問題是提出可能的單詞來替換拼錯的單詞。C拼寫檢查,字符串概念,算法
我還應該指出,在我的課程中,我們沒有得到更高層次的編程概念,如時間複雜度或算法開發。我說這是因爲我有一種感覺,我真的在問一些關於概念的名字,但我還沒有聽說過。
在其他類似的帖子裏,大多數人建議使用levenshtein距離或穿越帕特里夏樹;僅僅比較子串會是一個問題嗎?該(非常低效)算法我想出來的是:
第一N
字符,其中N = length of the misspelled word - 1
,到字典中的單詞(他們會從系統文件讀入一個動態分配的數組)
比較如果N
拼寫錯誤的單詞中的字符和字典中的單詞匹配,請將其添加到建議列表中;如果沒有更多的找到匹配,減小N
持續到10條建議被發現或N = 0
感覺笨重和尷尬,但它是那種我們的教科書提出瞭如何處理這個。我已經閱讀了關於遍歷樹的wiki文章,並且爲了效率和準確性計算了各種有趣的東西,但是在這一點上他們已經過了頭。任何幫助表示感謝,並感謝您花時間閱讀此內容。
而不是逐字從一個加載的字典檢查到內存,使用散列表,所以你可以有效地減少可能的候選人檢查。 –