斐伊川,實施字典
我整個實施,可以實現自動完成汽車的特徵字典的面試問題跑了 - 修正,拼寫檢查等等......
我其實是想知道哪些數據結構是最適合實施字典和一個如何處理上述要求的功能...
指導我在此歡迎任何鏈接...
斐伊川,實施字典
我整個實施,可以實現自動完成汽車的特徵字典的面試問題跑了 - 修正,拼寫檢查等等......
我其實是想知道哪些數據結構是最適合實施字典和一個如何處理上述要求的功能...
指導我在此歡迎任何鏈接...
只是有這個相同的答案問題的種類:一個Trie。看看here ..
而且後綴樹(或帕特里夏樹)可以爲這個目的有用..
Tries是一個常見的結構。它們是有限狀態自動機的一個特例,它也被用於dictionary construction和spell checking。
你可以自動完成任何排序容器,例如一組字符串:
#include <limits>
#include <set>
#include <string>
#include <vector>
int main()
{
std::set<std::string> words = {"foo", "bar", "barber", "baz", "quux"};
std::string starting_with = "ba";
auto lower = words.lower_bound(starting_with);
auto upper = words.upper_bound(starting_with + std::numeric_limits<char>::max());
std::vector<std::string> suggested_words(lower, upper);
}
並沒有真正的自動校正工作。 – 2010-10-24 16:33:38
對於自動更正,您必須使用拼寫檢查。但我不認爲這是數據結構的問題。更多關於數據結構的算法的問題..我認爲他們可能會嘗試嘗試。實際上,如果你有一本字典(從實現中抽象出來),我認爲你應該研究用戶插入的和合理的單詞之間的漢明距離。 – Jack 2010-10-24 16:34:35