* Что такое трансмогрификатор?
В языке программирования C существуют формации, называемые орграфами и триграфами, которые представляют собой последовательности из двух и трех символов, которые оцениваются в менее общие символы. Например, вы можете использовать, ??-
если ваша клавиатура не имеет ~
.
В данном тексте замените все экземпляры следующих орграфов и триграфов (слева) на правильные, более короткие символы гольфа (справа).
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
вход
Ввод текста ASCII. Трейлинг новой строки разрешен. Не должен быть действительный код C.
Выход
Вывод - один и тот же текст, все экземпляры вышеприведенных орграфов и триграфов заменены на сокращенную версию, оцениваемую слева направо. Трейлинг новой строки разрешен. Не должен быть действительный код C.
Тестовые случаи
=>
разделяет ввод и вывод.
if (true ??!??! false) { => if (true || false) {
??-arr.indexOf(n) => ~arr.indexOf(n)
function f(??) { console.log('test??'); } => function f(] { console.log('test^); }
/* comment :> :) *??/ => /* comment ] :) *\
%:What am I doing??!!??` => `#What am I doing|!??
??(??)??(??) <:-- not a palindrome => [][] [-- not a palindrome
?????????? => ??????????
int f(int??(??) a) ??< return a??(0??)??'a??(1??) + "??/n"; ??> => int f(int[] a) { return a[0]^a[1] + "\n"; }
??<:>??<% => {]{%
<:> => [>
<::> => []
:>> => ]>
#\^[]|{}~ => #\^[]|{}~
: > => : >
??=%: => ##
"??=%:"
является другим соответствующим тестом: в C, это означает , "#%:"
где %:
не является особенным, но я думаю , что ваш ожидаемый выход "##"
.