Текстовый редактор поддерживает следующие команды: <число> H -- сдвинуть курсор на указанное число позиций влево. <число> L -- сдвинуть курсор на указанное число позиций вправо. <число> I <буква> -- вставить указанную букву указанное число раз перед
- Программирование
Условие:
Текстовый редактор поддерживает следующие команды:
<число> H -- сдвинуть курсор на указанное число позиций влево.
<число> L -- сдвинуть курсор на указанное число позиций вправо.
<число> I <буква> -- вставить указанную букву указанное число раз перед позицией курсора и после этого переместить курсор на одну позицию влево так, чтобы он указывал на самую правую вставленную букву.
Например, после команд 3 I a, 1 I b получится текст aaba, и курсор будет указывать на букву b. После команд 3 I a, 2 H, 1 I b, 3 L получится текст baaa, и курсор будет указывать на последнюю букву.
Команды H и L никогда не выводят курсор за пределы текста. Например, после команд 3 I a, 10 L курсор остановится на последней букве. А после команд 3 I a, 10 H курсор остановится на первой букве.
Напишите программу, которая по данному списку команд и по данному списку позиций выводит буквы, находящиеся на соответствующих позициях в результирующем тексте.
Input
Первая строка содержит два натуральных числа N и M (N, M ≤ 1000). Далее следуют N строк, каждая из которых содержит одну команду. После этого следуют M строк, каждая из которых содержит одно натуральное число -- позицию в результирующем тексте. Позиции нумеруются начиная с единицы и не превышают длины текста.
Гарантируется, что все числа в командах будут в интервале [1..1000000000] и что длина текста не превысит 1000000000.
Output
Выведите M строк. Каждая строка должна содержать одну букву.
Решение:
Для решения задачи, нам нужно реализовать текстовый редактор, который будет обрабатывать команды и в конечном итоге формировать текст. Затем мы будем извлекать символы из этого текста по указанным позициям.
Давайте разберем шаги, которые нам нужно выполнить:
Шаг 1: Инициализация
Создадим переменные для хранения текста и текущей позиции курсора. Начнем с пустого текста и курсора, установленного на начало текста (позиция 0).Шаг 2: Обработка команд
Для каждой команды будем выполнять следующие действия:- Если команда
H, уменьшаем позицию курсора.- Если команда
L, увеличиваем позицию курсора.- Если команда
I, вставляем буквы перед текущей позицией курсора и перемещаем курсор на одну позицию влево.Шаг 3: Извлечение символов
После выполнения всех команд, будем извлекать символы из текста по указанным позициям.Шаг 4: Вывод результата
Выведем символы, которые были извлечены на предыдущем шаге.Теперь давайте напишем код, который реализует описанные шаги:
1. : Создаем пустой список для хранения символов и переменную для отслеживания позиции курсора. 2. : - Для и изменяем позицию курсора, следя за тем, чтобы она не выходила за пределы текста. - Для вставляем буквы в список и перемещаем курсор. 3. : После обработки всех команд, извлекаем символы по указанным позициям и добавляем их в результат. 4. : Печатаем каждый символ из результата. Этот код должен корректно обрабатывать команды и извлекать символы по указанным позициям.
Похожие задачи
Не нашел нужную задачу?
Воспользуйся поиском
Выбери предмет
- Правоохранительные органы
- Пожарная безопасность
- Парикмахерское искусство
- Природообустройство и водопользование
- Почвоведение
- Приборостроение и оптотехника
- Промышленный маркетинг и менеджмент
- Производственный маркетинг и менеджмент
- Процессы и аппараты
- Программирование
- Право и юриспруденция
- Психология
- Политология
- Педагогика
- Трудовое право
- Теория государства и права (ТГП)
- Таможенное право
- Теория игр
- Текстильная промышленность
- Теория вероятностей
- Теоретическая механика
- Теория управления
- Технология продовольственных продуктов и товаров
- Технологические машины и оборудование
- Теплоэнергетика и теплотехника
- Туризм
- Товароведение
- Таможенное дело
- Торговое дело
- Теория машин и механизмов
- Транспортные средства