En el lenguaje de programación C , hay formaciones llamadas dígrafos y trigrafos que son secuencias de dos y tres caracteres que se evalúan como caracteres menos comunes. Por ejemplo, puede usar ??-si su teclado no tiene ~.
Dado el texto, reemplace todas las instancias de los siguientes dígrafos y trigráficos (lado izquierdo) con el carácter correcto, más corto y golfizado (lado derecho).
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
Entrada
La entrada es texto ASCII. Nueva línea final permitida. No necesita ser un código C válido.
Salida
La salida es el mismo texto, con todas las instancias de los dígrafos y trigrafos anteriores reemplazados por la versión abreviada, evaluada de izquierda a derecha. Nueva línea final permitida. No necesita ser un código C válido.
Casos de prueba
=> separa entrada y salida.
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"; }
??<:>??<% => {]{%
<:> => [>
<::> => []
:>> => ]>
#\^[]|{}~ => #\^[]|{}~
: > => : >
??=%: => ##
"??=%:"Es otro caso de prueba relevante: en C, esto significa "#%:"que %:no es especial, pero creo que su salida esperada es "##".