2012-06-22 84 views
-1

我需要一個C#程序(搜索算法),即,當用戶鍵入字符,顯示屏應更新,以顯示下一個字符,可能匹配的電臺列表中的所有有效的選擇。搜索算法所需

例:用戶輸入:d A R T,它應該顯示

DARTFORD和DARTMOUTH

建議概要低於:

public class Suggestions 
{ 
    HashSet<Character> nextLetters { get; set; } 
    HashSet<String> stations { get; set; } 
} 

public class StationFinder 
{ 
    private static String[] stations = new String[] {"LIVERPOOL LIME STREET", "BIRMINGHAM 
             NEW STREET", "KINGSTON", " DARTFORD", "DARTMOUTH" }; 

    public Suggestions GetSuggestions(String userInput) 
    { 
      // TODO Compute result 
      Suggestions result = new Suggestions(); 
      return result; 
    } 
} 

這僅僅是一個建議它也可被修改。

問候,毗溼奴

+0

[你嘗試過什麼(http://whathaveyoutried.com)? – Amadan

+0

老兄你甚至沒有標記,以供.net和這氣味像功課 – Paparazzi

回答

1

我不知道C#個人,所以我不能幫你的代碼,但要使用被稱爲TRIE什麼。這是字符串的特定類型的樹結構。好的屬性是你可以非常清楚地看到所有以字符串開頭的合法結尾。這是完美的東西,如自動建議等,我認爲是你想要的東西。只是谷歌周圍TRIE實現在C#

+0

嘗試次數是好的,如果你有一個像巨大的字典單詞列表;如果你有幾千項,只是通過一個列表/陣列迭代和正確的'.StartsWith()挑選那些'既容易和充分的高性能。 – Amadan

+0

我給了+1,但我在0.1秒內用幾千和LINQ做了這個。但我會看看TRIE。基於樣本,我懷疑這是很多。 – Paparazzi

+0

感謝您的回覆。我可以嘗試TRIE實施。 – VVR147493