|
184 / 72 / 35
Регистрация: 09.05.2022
Сообщений: 387
|
|
Вывести все перестановки символов заданной строки02.02.2023, 15:07. Показов 2084. Ответов 7
Метки нет (Все метки)
Перестановки
Дана строка, состоящая из M попарно различных символов. Вывести все перестановки символов данной строки. Ограничения: 2 ≤ M≤ 8, символы - буквы латинского алфавита и цифры. Ввод: В первой строке файла находится исходная строка. Вывод: В первой строке вывести количество перестановок, в следующих строках вывести в каждой строке по одной перестановке. Перестановки можно выводить в любом порядке. Повторений и строк, не являющихся перестановками исходной, быть не должно. Примеры: ------------- INPUT.TXT AB OUTPUT.TXT 2 AB BA ------------- INPUT.TXT IOX OUTPUT.TXT 6 XOI OIX IXO XIO OXI IOX
0
|
|
| 02.02.2023, 15:07 | |
|
Ответы с готовыми решениями:
7
Вывести все перестановки символов данной строки Вывести все перестановки символов строки Вывести все перестановки символов данной строки |
|
6208 / 2905 / 1044
Регистрация: 01.06.2021
Сообщений: 10,707
|
||||||
| 03.02.2023, 09:54 | ||||||
Сообщение было отмечено Royal_X как решение
Решение
Самый простой в написании код для перестановок выглядит так:
1) Конечно, можно написать код и без STL, но смысла в оптимизации не вижу, ибо по условию у тебя максимум 8 символов в строке, а это всего лишь 8! = 40320 перестановок. Да и при самой лучшей оптимизации полагаю, что будет O(n*n!), учитывая ещё и вывод. 2) Вместо использования функции tgamma из <cmath> можешь написать функцию для вычисления факториала. Подойдёт даже самая простая рекурсивная функция, ведь считать придется макс. 8!.
1
|
||||||
|
|
|
| 03.02.2023, 11:10 | |
|
0
|
|
|
6208 / 2905 / 1044
Регистрация: 01.06.2021
Сообщений: 10,707
|
||||||
| 03.02.2023, 11:26 | ||||||
|
Kuzia domovenok, одна из возможных реализации этого алгоритма (код взят из инета):
0
|
||||||
|
|
|||||||
| 03.02.2023, 11:44 | |||||||
неужели страшные слова is_sorted_until upper_bound reverse Нужны новичку, который только виды сортировок начинает учить?
0
|
|||||||
|
6208 / 2905 / 1044
Регистрация: 01.06.2021
Сообщений: 10,707
|
|
| 03.02.2023, 11:58 | |
|
Kuzia domovenok, а зачем новичку знать, как работает next_permutation? Тут два варианта: либо условие позволяет использовать string, algorithm, либо нужно писать код без всего этого. Если первый вариант, то мой код подходит, равно как подходит и ваш. Но если второй вариант, то тогда нужно писать, используя массив char и только обычные циклы. И в этом случае и ваш код не подходит.
0
|
|
|
|
||
| 03.02.2023, 12:18 | ||
|
а зачем если он настолько нович0к, что алгоритмов не знает, вообще тогда решать задачи на алгоритм перестановок? Зачем начинают изучать программирования с сортировки пузырьком? Есть же библиотека! А потому что первая задача в программировании не научить набору ключевыхслов и не научитьгуглить кодв справке,а научить именно ИЗОБРЕТАТЬ! Изобретать алгоритмы! Потому что этой задачй можно заниматься и без ширины знаний STL и.т.п. Только зная синтаксис массивов и циклов ужеможноотходить от изучения языковыхфич и заваливать новичков сотней алгоритмов сортировокдля саморазбора 2) На мой взгляд, алгоритмы тем и замечательны, что до них любой нов. может и сам додуматься, а вот использование библиотеки требует очень и очень глубоких знаний С++. Что там со знанием итераторов, стандартных контейнеров, алгоритмической сложности ихиспользования???
1
|
||
|
6208 / 2905 / 1044
Регистрация: 01.06.2021
Сообщений: 10,707
|
||
| 03.02.2023, 12:40 | ||
|
Kuzia domovenok, значит вы понимаете условие так, как я расписал во втором варианте в посте #6. А я писал:
0
|
||
| 03.02.2023, 12:40 | |
|
Помогаю со студенческими работами здесь
8
Все возможные варианты перестановки символов строки
Вывести на экран все возможные перестановки введенных ползователем символов Вывести на экран все возможные перестановки введенных символов. Где ошибка? Дана строка, состоящая из М символов. Вывести все перестановки символов данной строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|