でCプログラミング言語と呼ばれる地層がある有向グラフとトリグラフにあまり一般的でない文字を評価2と3文字の配列です。たとえば??-
、キーボードにがない場合に使用できます~
。
テキストが与えられたら、次のダイグラフおよびトライグラフのすべてのインスタンス(左側)を、正しい短いゴルフのキャラクター(右側)に置き換えます。
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
入力
入力は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では、これは特別"#%:"
で%:
はない場所を意味しますが、期待される出力はであると思います"##"
。