Введение
Код Парсонса - это просто простой способ описать изменения высоты звука в музыкальном произведении, независимо от того, выше или ниже нота по сравнению с предыдущей.
Даже если вы не любите запоминать мелодии, вы все равно можете вспомнить, идет ли нота вверх или вниз, поэтому код Парсонса может помочь вам идентифицировать музыку с помощью поисковой системы.
Описание
Каждый вариант представлен одним символом, который является одним из следующих:
R
если примечание то же , чем предыдущий (означает « R EPEAT» )U
если нота выше, чем предыдущая (означает « U p» )D
если нота ниже, чем предыдущая (означает « D own» )
Начальная нота написана как *
.
пример
Вот пример кода Парсонса (начало «Ода радости» ):
*RUURDDDDRUURDR
Вы можете фактически визуализировать это, как это:
*-*
/ \
* *
/ \
*-* * *-*
\ / \
* * *-*
\ /
*-*
Теперь мы будем называть это контуром .
Правила рисования таких графов считаются самоочевидными в приведенном выше примере.
Вызов
Теперь наступает настоящий вызов.
Напишите программу, которая, учитывая входной контур, выводит соответствующий ему код Парсонса.
Вас не просят нарисовать контур, а наоборот.
Из контура найдите оригинальный код Парсонса.
правила
- Применяются обычные правила для игры в гольф
- Победит самая короткая программа по количеству байтов
- Вход является контуром, а выход должен быть действительным кодом Парсонса.
- Подробности о лишних пробелах для ввода не имеют значения, делайте все, что лучше для вас
- Вы не можете жестко, так или иначе, жестко кодировать части вывода и / или программу, используя дополнительные пробелы из-за предыдущего правила
Заметки
- Это может быть полезно для тестирования
- Соответствующий код Парсонс для
*
IS*
- Пустая строка не является допустимым контуром
- Код Парсонса всегда начинается с
*
*
что ничего не делает?
*
? Нет. Это должно напечатать, *
я полагаю. Я добавлю этот угловой случай.
*
. Всегда.