У мові програмування на C є утворення, що називаються диграфами та триграфами, що представляють собою послідовності з двома та трьома символами, які оцінюються на менш поширені символи. Наприклад, ви можете використовувати, ??-якщо у вас немає клавіатури ~.
Наданий текст, замініть всі екземпляри наступних диграфів і триграфів (лівий бік) правильним, коротшим символом для гольфу (правий бік).
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
Вхідні дані
Вхід - текст ASCII. Дозволений трейлінг нового рядка. Не потрібно бути дійсним кодом С.
Вихідні дані
Вихід - це той самий текст, усі екземпляри вищезазначених діаграм і триграфів замінені на скорочену версію, оцінену зліва направо. Дозволений трейлінг нового рядка. Не потрібно бути дійсним кодом С.
Випробування
=> розділяє вхід і вихід.
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, це означає , "#%:"де %:не є особливим, але я думаю , що ваш очікуваний вихід "##".