Показать сообщение отдельно
Старый 26.11.2004, 13:39     # 15
kot_
Junior Member
 
Аватар для kot_
 
Регистрация: 19.11.2004
Адрес: Dnepropetrovsk
Пол: Male
Сообщения: 67

kot_ Путь к славе только начался
Цитата:
Сообщение от EvroStandart
Только я чтото недогоняю как алгоритм для такого перебора составить?
Набросайте, если не влом...
В алгоритме ничего сложного нет. У тебя есть символ который обязательно должен присутствовать - значит начинаешь с того, что устанавливаешь его в первую позицию - после начинаешь перебор. В массиве каждая буква у тебя встречается один раз - это нужно использовать - то есть каждую позицию массива помещаешь один раз в в свободную позицию слова - для 4-х буквенного слова это будет примерно так:
- скопировать первые три элемента в слово
-записать
- скопировать следующие три элемента
-пункт 2
-скопировать первый второй и четвертый
-пункт два
-скопировать первый второй и пятый
-пункт два
-скопировать первый второй и шестой
...
-скопировать первый третий и четвертый
и так далее.
Потом первый элемент массива копируется во вторую позицию второй в первую. Выполняешь последовательно теже шаги.
Затем третий элемент копируется в первую. Опять прогоняешь
Когда все элементы массива пройдут первую позицию смещаешь второй на место третьего и опять итерация. То есть выполняешь все шаги до тех пор, пока первый элемент массива не вернется в начало.
То же самое используешь для 5 и более буквенных. Но здесь возможны два варианта - с одной строны у тебя уже есть 4-х буквенные слова - можно использовать их - но тогда на этом этапе должна быть добавлена функция проверки на наличие буквы - мне кажется это может усложнить работу с алгоритмом. И по этому, я бы использовал тот же принцип что и для 4-х буквенных но соответственно копировал просто большее колво элементов.
__________________
kot_ вне форума