2009-01-06 106 views

回答

5

我不知道如果我理解正確你的問題,但是這可能幫助:

List<string> GetWords(IEnumberable<char> characters) { 
    char[] chars = characters.Distinct().ToArray(); 
    List<string> words = new List<string>(chars.Length*chars.Length); 
    foreach (char i in chars) 
     foreach (char j in chars) 
      words.Add(i.ToString() + j.ToString()); 
    return words; 
} 
0

你說的是發現可以從一組字符的任意組合進行真正的雙字詞?

在這種情況下,您需要編寫一個算法,可以從所提供的字母中找出所有可能的組合,並且對於每個組合,嘗試(反過來)對付一個IDictionary,它就像真正的實際字典兩個字母的單詞。

未經測試的代碼:

IDictionary<string, string> dictionary = GetRealTwoLetterWordDictionary(); 
char[] availableChars = new char[] { 'a', 's', 't' }; 
string[] combinations = GetAllCombinations(availableChars); 
IList<string> results = new List<string>(); 

foreach (string combination in combinations) 
{ 
    if (dictionary.ContainsKey(combination))) 
    { 
     results.Add(combination); 
    } 

    string reversed = combination.Reverse(); 

    if (dictionary.ContainsKey(reversed))) 
    { 
     results.Add(reversed); 
    } 
} 
相關問題