Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48

Найти количество операций необходимое для того, чтобы получить из второй строки первую

04.11.2014, 21:30. Показов 2253. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Помогите, пожалуйста, написать программу для задачи:
Задача BP - Объявление
Ограничение времени: 1 с
Ограничение памяти: 256 M

Как известно, в общежитии на дверях часто размещают разные объявления, например, "Курить строго запрещается", "Вход до 23:00" и т.п. Вам необходимо, имея два таких объявления, выяснить, на сколько они похожи между собой. Для этого необходимо посчитать количество операций типа "поменять местами две соседние буквы второго объявления", чтобы получить первое объявление. Например, имея объявления «abac» и «cbaa» вам необходимо выполнить 4 таких операции: «cbaa» -> «caba» -> «acba» -> «abca» -> «abac».

Формат входных данных

В первой строке содержится первое объявление. Во второй строке - второе. Объявления представляют собой непустые строки, состоящие только из маленьких букв английского алфавита. Длина каждой строки не превышает 3000 символов.

Формат результата

Выведите количество операций, необходимое для того, чтобы получить из второй строки первую. Если этого сделать нельзя, выведите -1.

Примеры
Входные данные
abac
cbaa
Результат работы
4
Заранее большое спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2014, 21:30
Ответы с готовыми решениями:

Определить минимальное количество операций необходимо для того, чтобы сделать число a равным числу b
Помогите пож-ста срочно

Найти количество вхождений второй строки в первую (без Pos)
Ввести с клавиатуры две строки. Известно, что первая строка длиннее второй и не превышает 255 символов. Вывести на экран количество...

Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N
Имеется калькулятор, который выполняет три операции: Прибавить к числу X единицу. Умножить число X на 2. Умножить число X на 3. ...

2
0 / 0 / 1
Регистрация: 04.11.2014
Сообщений: 5
05.11.2014, 11:15
Обмен местами двух соседних букв можно представить себе как перемещение одной из них: "abCd" -> "aCbd". Тогда очевидно, что количество операций, необходимых для перемещения буквы в начало строки равняется индексу этой буквы.
Получается такой алгоритм: (исходные строки в a и b - "cbaa" и "abac")
1. Находим первое вхождение первого символа из b в a. Если не находится - строки нельзя превратить друг в друга. (Индекс символа 'a' в "cbaa" - 2)
2. Прибавляем к результату индекс этого вхождения.
3. Удаляем из обоих строк этот символ. (Остаются "cba" и "bac")
4. Повторяем алгоритм для измененных строк a и b, пока они не пусты.
0
 Аватар для Nerewar
0 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 48
05.11.2014, 17:44  [ТС]
Цитата Сообщение от gmoll Посмотреть сообщение
Обмен местами двух соседних букв можно представить себе как перемещение одной из них: "abCd" -> "aCbd". Тогда очевидно, что количество операций, необходимых для перемещения буквы в начало строки равняется индексу этой буквы.
Получается такой алгоритм: (исходные строки в a и b - "cbaa" и "abac")
1. Находим первое вхождение первого символа из b в a. Если не находится - строки нельзя превратить друг в друга. (Индекс символа 'a' в "cbaa" - 2)
2. Прибавляем к результату индекс этого вхождения.
3. Удаляем из обоих строк этот символ. (Остаются "cba" и "bac")
4. Повторяем алгоритм для измененных строк a и b, пока они не пусты.
А можете, пожалуйста в коде это показать, а то я немного не понимаю...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2014, 17:44
Помогаю со студенческими работами здесь

Определить, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N
Калькулятор выполняет 3 операции: Прибавить к числу единицу. Умножить число на 2. Умножить число на 3. Определите, какое наименьшее...

Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N
Задание Исполнитель «Калькулятор» может с заданным числом X выполнить одну из трех операций и получить новое число. Возможные операции: ...

Определить время, необходимое для того, чтобы все грызуны покинули комнату
В комнату размером N * N маленьких плиток было размещено K грызунов. Кроме того, в комнате есть M отверстий в полу, через которые грызуны...

Найти количество денег, необходимое Пете, чтобы купить 3 целых упаковки конфет
В магазине ириски продаются только в упаковке, по 30 штук, и стоят 60 рублей. Пионеру Пете нужно 3 целых упаковки(90 конфет), зачем -...

Найти количество теплоты, необходимое газу, чтобы его давление увеличилось в 3 раза
7.2 двухатомный идеальный газ 2 моль нагревают при постоянном объеме до Т=289 К. найти количество теплоты, необходимое газу, чтобы его...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru