2009-01-06 7 views

Répondre

5

Je ne suis pas sûr si je comprends bien votre question, mais cela pourrait aider:

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

Parlez-vous de trouver de vrais mots à deux caractères qui peuvent être fabriqués à partir de toute combinaison d'une liste de caractères ?

Dans ce cas, vous devez écrire un algorithme qui peut élaborer toutes les combinaisons possibles à partir des lettres fournies, et pour chaque combinaison, essayez-le (et inversement) contre un IDictionary qui agit comme un vrai dictionnaire de réel mots de deux lettres.

code non testé:

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); 
    } 
} 
Questions connexes