Генерация слов заданной длины в C#

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

// Создаем слова с буквами num_letters.
private List GenerateLetterCombinations(int num_letters)
{
    List values = new List();

    // Создаем однобуквенные комбинации.
    for (char ch = 'a'; ch <= 'z'; ch++)
    {
        values.Add(ch.ToString());
    }

    // Добавить в комбинации.
    for (int i = 1; i < num_letters; i++)
    {
        // Создаем комбинации, содержащие i + 1 букв.
        List new_values = new List();
        foreach (string str in values)
        {
            // Добавьте все возможные буквы в эту строку.
            for (char ch = 'a'; ch <= 'z'; ch++)
            {
                new_values.Add(str + ch);
            }
        }

        // Замените старые значения на новые.
        values = new_values;
    }

    return values;
}

Сначала код создает 1-буквенные слова от a до z. Затем для каждой дополнительной буквы, которую он должен добавить, он проходит через существующие слова. Для каждого существующего слова программа проходит через буквы от a до z и создает новое слово с прилагаемой буквой. Например, если код рассматривает существующее слово «плохо», он теперь создает слова bada, badb, badc, badd и т. д.

Код цикла добавляет новые слова в новый List. Когда он закончен, код заменяет старые значения List новым List. После завершения построения всех строк он возвращает List.

Источник: http://csharphelper.com/blog/2016/08/generate-words-of-a-given-length-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector