Генерация слов заданной длины в C#
Пример
// Создаем слова с буквами num_letters. private ListGenerateLetterCombinations(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.