Аватар для Vikenty
55 / 41 / 1
Регистрация: 20.04.2010
Сообщений: 262

Все возможные варианты строки

29.08.2010, 00:38. Показов 2767. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как из одной строки получить все возможные варианты?

например так:
Цитата:
первая строка API
PIA
IAP
AIP
IPA
PAI
надеюсь на помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.08.2010, 00:38
Ответы с готовыми решениями:

Получить все возможные варианты расположения букв
Нужно сделать так чтобы пользователь мог ввести слово и получить все возможные варианты расположения букв. То есть к примеру слово Вал:...

Нужно чтобы функция парсинга искала все возможные варианты, а не только первый
В общем моя задача из кэша оперы, вытащить все данные автозаполнения. Где хранится нашел, нормализовал под текстовик, получилось типа ...

возможные варианты реализации
Есть форма, на ней N эдитов, эдиты могут заполнятся или нет. так же форма заполняется для нескольких вариантов. Необходимо организовать...

8
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
29.08.2010, 00:49
есть два варианта:
1. Циклом
2. Рекурсией
ЗЫ я бы предпочел второй

Добавлено через 3 минуты
+ нужно устаканить что делать если в исходном наборе есть повторяющиеся символы?
1
11 / 6 / 0
Регистрация: 19.02.2010
Сообщений: 77
29.08.2010, 00:49
тебе идею или решение готовое?
0
Студент
 Аватар для Жека-старший
498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601
29.08.2010, 00:54
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var a:string[20]; sim:char; n,i,j:integer;ft:text;
procedure pr_recurs(n:integer);
var i,j:byte;
begin
   for i:=1 to n do
   begin
       sim:=a[n];
       for j:=n downto 2 do
       a[j]:=a[j-1];
       a[1]:=sim;
       if i<n then writeln(a);;
       if n>1 then pr_recurs(n-1);
   end;
end;
begin
   writeln('Введи строку');
   readln(a);
   n:=Length(a);
   writeln;
   writeln(a);
   pr_recurs(n);
end.
пример такой у меня.

Не проверял повторяющиеся символы.
2
 Аватар для Vikenty
55 / 41 / 1
Регистрация: 20.04.2010
Сообщений: 262
29.08.2010, 01:09  [ТС]
Цитата Сообщение от Vas-e-na Посмотреть сообщение
есть два варианта:
1. Циклом
2. Рекурсией
ЗЫ я бы предпочел второй

Добавлено через 3 минуты
+ нужно устаканить что делать если в исходном наборе есть повторяющиеся символы?
Повторяющихся символов не будет

Добавлено через 3 минуты
Цитата Сообщение от kir_ Посмотреть сообщение
тебе идею или решение готовое?
решение можно идею...
0
Студент
 Аватар для Жека-старший
498 / 344 / 162
Регистрация: 15.03.2010
Сообщений: 601
29.08.2010, 01:12
А в моем варианте что не понятно?
Помогу если что.
1
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
29.08.2010, 01:16
Цитата Сообщение от Vikenty Посмотреть сообщение
Повторяющихся символов не будет
тогда для рекурсии (мне больше нравится) алгоритм будет выглядеть примерно так
Code
1
2
3
4
5
6
7
8
9
10
11
12
функция комбинации(параметр - строка) результат - строка
переменные: результат-строка
начало
  Цикл Ц от 1 до длинна(параметра-строки)
  начало 
    Результат-строка=Символ №Ц Из Параметра-cтроки
    Вырезаем Символ Ц из параметра-строки
    Рекурсивно вызываем функцию с новым параметром-строкой, результат добавляем к концу результат-строки
    Возвращаем вырезанный символ к строке-параметру (можно в начало, но ни в коем случае нев конец!!!)
    Результат-строку выводим на экран либо сохраняем в контейнер
  конец
конец.
Возможность реализовать оставляю за вами! Удачи!
PS будут проблемы - решим вместе
1
 Аватар для Vikenty
55 / 41 / 1
Регистрация: 20.04.2010
Сообщений: 262
29.08.2010, 01:18  [ТС]
Цитата Сообщение от Жека-старший Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var a:string[20]; sim:char; n,i,j:integer;ft:text;
procedure pr_recurs(n:integer);
var i,j:byte;
begin
   for i:=1 to n do
   begin
       sim:=a[n];
       for j:=n downto 2 do
       a[j]:=a[j-1];
       a[1]:=sim;
       if i<n then writeln(a);;
       if n>1 then pr_recurs(n-1);
   end;
end;
begin
   writeln('Введи строку');
   readln(a);
   n:=Length(a);
   writeln;
   writeln(a);
   pr_recurs(n);
end.
пример такой у меня.

Не проверял повторяющиеся символы.
Огромное спасибо! помог
0
11 / 6 / 0
Регистрация: 19.02.2010
Сообщений: 77
29.08.2010, 01:22
идея такая
можно последовательно менять положение символов посредством цикла фор от 1 до конца строки используя isert, delete, copy
точный алгорит пока непридумал появится минутка попробую =)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.08.2010, 01:22
Помогаю со студенческими работами здесь

Все возможные комбинации
мм подскажите как сделать программу чтобы она перебирала все возможные варианты введенных цифр или букв допустим я ввожу весь...

Все возможные комбинации символов
Помогите пожалуйста с програмой) Суть в том, что пользователь вводит 3 символа(например A, B, C) и программа должна вывести все возможные...

Напечатать все возможные перестановки слов
Задано предложение без предлогов, слова в котором разделены одним или несколькими пробелами. Напечатать все возможные перестановки слов в...

Получить все возможные комбинации чисел
есть числа подскажите, пожалуйста, как при помощи средств delphi можно получить все их возможные комбинации

Найти все варианты суммы числа
Добрый день. Подскажите как можно решить такую задачу. Пользователь вбивает n целых неповторяющихся чисел и число (s), которое будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru