에서 C 프로그래밍 언어 라는 형성이 있습니다 이중 음자와 trigraph를 덜 일반적인 문자로 평가, 둘, 셋 문자 시퀀스입니다. 예를 들어 ??-키보드에이없는 경우 사용할 수 있습니다 ~.
텍스트가 주어지면 다음의 digraphs 및 trigraphs (왼쪽)의 모든 인스턴스를 정확하고 짧은 골프 캐릭터 (오른쪽)로 바꾸십시오.
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~
<: [
:> ]
<% {
%> }
%: #
입력
입력은 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에서 이것은 특별하지 않은 "#%:"곳을 의미 %:하지만 예상 출력은 "##"입니다.