Получите вторую строку, изменив первую строкуC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получите вторую строку, изменив первую строку

Сообщение Anonymous »


CD — это аббревиатура от «Компакт-диск», формата хранения данных на цифровых оптических дисках.

Вам даны две строки. Обе строки содержат только буквы «C» и «D».

Ваша цель — выяснить, можно ли получить вторую строку, применив определенные операции к первой строке.

Операции:
[*]Вы можете добавить «CD» в конец строки. [*]Вы можете добавить «DCDC» в конец строки. [*]Вы можете добавить «CDDD» в конец строки. [*]Вы можете удалить последние 3 символа в конце строки, если длина строки больше или равна 3.
Формат ввода

x --> в первой строке длина первой строки.

S1 --> во второй строке первая строка.

y --> в третьей строке длина второй строки.

S2 --> в четвертой строке, вторая строка.

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

Если можно получить вторую строку, выведите «YES», если нет, выведите «NO» (ответ выведите без кавычек).

Ограничения
[*]
1≤x,y≤2*10^5
[*]
S1 и S2 содержат только буквы «C» и «D».

Пример ввода

3 CCC 6 CCCDCD Пример вывода

ДА

Объяснение

CCC --> CCCDCDC (2-я операция)
CCCDCDC --> CCCD (4-я операция)
CCCD --> CCCDCD (1-я операция)

Я пытался решить эту проблему с помощью рекурсии, но не смог. Есть ли просто грубое решение? Наверное, есть какая-то хитрость, которую я не вижу.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»