Рассмотрим эти пять ASCII художественных морских существ:
- Стандартная рыба:
><>или<>< - Быстрая рыба:
>><>или<><< - Крепкая рыба:
><>>или<<>< - Эластичная рыба:
><<<>или<>>>< - Краб:
,<..>,
Напишите программу, которая принимает произвольную строку символов <>,.. Если есть способ интерпретировать всю строку как серию непересекающихся морских существ, то строка должна быть перепечатана с одиночными пробелами, вставленными между существами. Если такая интерпретация невозможна, ничего не должно выводиться (программа молча завершается).
Например, строку <><><>можно интерпретировать как две стандартные рыбы подряд. Соответствующий вывод будет <>< ><>.
В качестве другого примера, строка ><>><>>содержит «экземпляры» of ...
(скобки добавляются только в качестве индикаторов)
- пара стандартных рыб:
[><>][><>]> - быстрая рыба:
><[>><>]> - крепкая рыба в двух направлениях:
[><>>]<>>и><>[><>>]
однако только спаривание стандартной рыбы и крепкой рыбы [><>][><>>]охватывает всю длину струны без каких-либо символов, разделяющих рыбу (без наложений). Таким образом, выходной сигнал , соответствующий ><>><>>это ><> ><>>.
Если есть несколько способов интерпретации строки, вы можете напечатать любой из них. (И печатать только один . Из них) , например, <><<<><может быть истолкована как стандартная рыба и крепкая рыба: [<><][<<><]или как безотлагательное рыбы и стандартная рыба: [<><<][<><]. Так что либо <>< <<><либо <><< <><будет действительным выводом.
Раки просто для удовольствия. Поскольку они не начинаются и не заканчиваются на <или >, их гораздо легче идентифицировать (по крайней мере, визуально). Например, строка
,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><>
очевидно, будет производить вывод
,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><>
Вот несколько примеров строк (по одной на строку), которые не выводят:
<><>
,<..>,<..>,
>>><>
><<<<>
,
><><>
,<><>,
<<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<><
Последняя строка здесь может быть проанализирована, если вы удалите ведущую <:
<<>< ><<<> >><> ><> ><> <>< <>>>< >><> >><> >><> ><>> <<><
(Могут быть и другие возможные результаты.)
подробности
- Входная строка будет содержать только символы
<>,.. - Длина входной строки будет не менее одного символа.
- Принимайте входные данные любым обычным способом (командная строка, стандартный ввод) и выводите в стандартный вывод.
- Самый короткий код в байтах побеждает. ( Удобный счетчик байтов. ) Tiebreaker - более ранний пост.






