Как эффективно генерировать двухсимвольные длинные слова? - PullRequest
0 голосов
/ 06 января 2009

Я играл с идеей создать скрипт для генерирования двухсимвольных слов из заданного набора символов на моем языке. Однако, поскольку я не переизобретаю колесо, знаете ли вы о таком скрипте, общедоступном для C #?

Ответы [ 2 ]

5 голосов
/ 06 января 2009

Я не уверен, правильно ли я понял ваш вопрос, но это может помочь:

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 голосов
/ 06 января 2009

Вы говорите о поиске настоящих двухсимвольных слов, которые можно составить из любой комбинации списка символов?

В этом случае вам нужно написать алгоритм, который может обработать все возможные комбинации из предоставленных букв, и для каждой комбинации попробовать (и наоборот) против 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...