Поиск по этому блогу

четверг, 3 мая 2012 г.

Перебор символов

Как - то читал статью по брутфорсу и задумался: "А как делать перебор символов?" Долго искал примеры, но они были очень громоздки, и мне их было сложно понять. Вот на днях нашёл более простой пример. Программа последовательно перебирает все возможные комбинации символов и выводит их на экран.


public static IEnumerable EnumLetter(string alphabet)
        {
            foreach (char a in alphabet)
                yield return "" + a;
        }
        public static IEnumerable EnumWord(IEnumerable child, string alphabet)
        {
            foreach (string a in child)
                foreach (string b in EnumLetter(alphabet))
                    yield return "" + a + b;
        }
        static void Main(string[] args)
        {
            
            
            const string alphabet = "abcdefghijklmnopqrstuvwxyz";
            int length = 5;

            IEnumerable list = EnumLetter(alphabet);
            for (int i = 0; i < length - 1; i++)
                list = EnumWord(list, alphabet);
            foreach (string a in list)
                Console.WriteLine(a);
        }
Смысл такой - есть строка "ааааа", программа начинает перебирать символы с последнего символа в этой строке. Т.е. было "ааааа", стало "ааааб", затем "аааав" и так делее. Перебираются все символы в строке.

Комментариев нет:

Отправить комментарий