Я встревожился растущей ненавистью к пробелам, и этот ответ вдохновил меня на то, чтобы код Морзе был защищен от этого коварного удаления пробелов.
Итак, ваша задача будет состоять в том, чтобы создать программу, которая сможет успешно переводить азбуку Морзе со всеми удаленными пробелами.
Правила:
На входе будет строка, состоящая только из тире и точек (ASCII 2D и 2E). Вывод не определен для ввода, содержащего любые другие символы. Не стесняйтесь использовать любой метод, удобный для вашего языка, для получения ввода (стандартный ввод, текстовый файл, приглашение пользователя и т. Д.). Можно предположить, что ввод азбуки Морзе состоит только из букв AZ, и соответствующие цифры или знаки препинания не требуются.
Вывод должен включать только слова, содержащиеся в этом файле словаря (опять же, не стесняйтесь использовать любой удобный метод для доступа к файлу словаря). Все действительные декодирования должны быть выведены на стандартный вывод, и должны быть использованы все точки и тире на входе. Каждое совпадающее слово в выходных данных должно быть разделено пробелом, а каждое возможное декодирование должно быть отделено новой строкой. Вы можете использовать верхний регистр, нижний регистр или смешанный регистр как удобно.
Все ограничения на стандартные лазейки применяются с одним исключением, как отмечено выше, вы можете получить доступ к файлу словаря, на который есть ссылка в требовании 2, через интернет-соединение, если вы действительно этого хотите. Сокращение URL приемлемо, я считаю, что goo.gl/46I35Z , вероятно, самый короткий.
Это код гольф, самый короткий код выигрывает.
Примечание. При публикации файла словаря на Pastebin все окончания строк изменились на последовательности в стиле 0A 0E в стиле Windows. Ваша программа может предполагать окончания строки только с 0A, только 0E или 0A 0E.
Тестовые случаи:
Входные данные:
......-...-.. ---. ----- ...-..- ..
Вывод должен содержать:
Привет, мир
Входные данные:
...,. ----- .... ----- ... - .. - ... --- .. - ...-.... ... - ...-.. ---- ... -. ----....-..
Вывод должен содержать:
программирование головоломок и код гольфа
Входные данные:
-..... - ...-...-.. -.. ...., .... --- --- ---- ..-.- --.. --- -. .... --- ...-...-......-... --- ... --- ..-- ---.
Вывод должен содержать:
Быстрая коричневая лиса прыгает через ленивую собаку
AN (.- -.)
иEG (. --.)
?