trie數據結構通常是以英文存儲字符串的好方法。它的工作原理是構建一棵樹,每個邊都用一個字母標記,並且樹中標記節點的路徑指出數據結構中的一個單詞。英語以外的其他語言的嘗試的限制和替代方法?
這個數據結構在英語中運行良好,因爲英文字母中只有26個字母(「合理的」分支因子),這些字符具有連續的ASCII值(因此子指針可以存儲在數組鍵入的通過每個孩子使用的字母的索引),並且有許多英文單詞具有共同的前綴(所以在結構中有很多冗餘)。
我是一位母語爲英語的人,其他語言和字母的知識水平有限,但其中許多屬性似乎並不適用於其他語言。例如,我知道法語,西班牙語,德語和匈牙利語經常使用不與Unicode空間中的其餘字母連續存儲的重音字符。希伯來語和阿拉伯語的元音標記通常在每個字母的上方或下方標出。中文使用的是一個語標系統,韓文韓文字符由三個小字符組合而成。
對於以這些語言和字母存儲的數據,Do嘗試仍然有效嗎?對這類數據使用try有必要進行哪些更改(如果有的話)?是否有任何數據結構對那些特別適合他們的語言和字母的字符串起作用,但在英語中不會有用或有效?
沿着輸入清洗的路線,對於字跡書寫系統來說,似乎使用羅馬字符可能會有所幫助。 – Nuclearman 2014-12-13 19:11:50
@核心人:如果你有一本好字典,我想羅馬字會有所幫助。從未給過多少思考。有趣的想法。 – 2014-12-13 21:27:38
另一種方法是注意每個字符都可以通過爲該語言設計的鍵盤上的特定鍵組合來生成。應該可以進行反向查找以找到特定的組合。雖然這也需要一種字典。 – Nuclearman 2014-12-14 01:06:35