배경
Stack Cats 는 Martin Ender가 만든 뒤집을 수있는 난해한 언어입니다. Stack Cats의 각 명령은 자체의 역수 ( -_:T|
) 와 같은 대칭 문자로 표시 되거나 역 명령 ( ()
{}
[]
<>
) 과 같은 미러 이미지로 표시됩니다 . Stack Cats는 전체 프로그램이 자체의 미러 이미지 여야한다는 강력한 구문 요구 사항을 가지고 있습니다. 이는 유효한 Stack Cats 프로그램이 자연스러운 미러 이미지 앰비 그램 임을 의미합니다 .
Stack Cats의 전체 명령 세트는 다음과 같습니다.
- 자기 대칭 :
!*+-:=ITX^_|
- 대칭 쌍 :
()
{}
[]
<>
\/
다른 문자는 유효하지 않습니다. 위의 문자 세트에없는 문자를 가진 입력은 모두 false를 출력해야합니다.
이 언어에는 추가적인 제약 조건이 ()
있으며 {}
쌍은 항상 균형을 유지해야하지만 단순성을 위해이 조건을 확인할 필요는 없습니다.
다음은 유효한 Stack Cats 프로그램의 예입니다 (균형 괄호를 확인하지 않음).
{[+]==[+]}
[)>^<(]
({T)}|{(T})
<(*]{[:!-_:>}<[<)*(>]>{<:_-!:]}[*)>
이것들은 아닙니다 :
b<+>d
())(
({[<++<]})
도전
주어진 문자열이 유효한 Stack Cats 프로그램인지 확인하는 프로그램이나 함수를 작성하십시오. 코드는 자연스러운 미러 이미지 ambigram이어야 합니다.
- 코드는 자체의 미러 이미지 여야합니다.
- 전체 코드가 자연스럽게 표시되는 한 코드에는 하나 이상의 줄 바꿈이있을 수 있습니다.
- 디스플레이를 변경하지 않기 때문에 각 줄에 후행 공백을 생략하거나 추가 할 수 있습니다.
- 탭 문자는 표시하기에 모호성이 있으므로 허용되지 않습니다.
참고 : 코드가 유효한 Stack Cats 프로그램 일 필요 는 없습니다 . Stack Cats에서는 허용되지 않는 추가 문자가 포함될 수 있습니다. (전체 목록은 아래를 참조하십시오.)
예를 들어, 다음 두 프로그램은 대칭 (따라서 유효한 제출 )이지만 세 번째는 그렇지 않습니다.
({bTd})
[<q|p>]
({bTd})
IXI
({bTd})
IXI
- "미러 대칭"과 관련하여 스택 고양이 스타일의 대칭 만 고려됩니다 (예 :
({IH})
미러 대칭이 있어도 유효한 제출물은 아닙니다). - 코드에는 다음 문자 세트와 개행 문자 만 포함될 수 있습니다.
- 자기 대칭 : 공간 (
0x20
) +!"'*+-.8:=AHIMOTUVWXY^_ovwx|
- 대칭 쌍 :
()
/\
<>
[]
bd
pq
{}
- 자기 대칭 : 공간 (
문자 세트는 SE에서 코드로 표시 될 때 엄격하게 대칭이거나 자체 대칭이되도록 선택됩니다.
입력과 출력
입력 범위는 인쇄 가능한 ASCII 문자의 한 줄 문자열입니다 .
문자열, 문자 목록 또는 ASCII 값 목록으로 입력하도록 선택할 수 있습니다.
다음 중 하나를 출력하도록 선택할 수 있습니다.
- 선택한 언어로 정의 된 진실 / 거짓 값
- 실제 결과 값은 입력에 따라 다를 수 있습니다 (예 : 정확한 입력의 경우 출력 1과 다른 확실한 입력의 경우 2).
- 진실과 허위 가치를 교환하는 것은 허용되지 않습니다.
- 각각 true / false에 대한 두 개의 상수 값
- 이 경우 결과 값은 두 상수 값 중 하나 여야합니다.
제출시 입력 방법과 출력 값을 지정해야합니다.
승리 조건
이것은 code-golf 이므로 각 언어에서 가장 낮은 바이트가 이깁니다.
노트
- 표준 허점 은 평소와 같이 금지되어 있습니다.
- 물론 Stack Cats 에서이 문제를 해결할 수 있지만 코드 크기를 절반으로 줄일 수있는 플래그를 사용할 수는 없습니다. 그리고 말하기 어려운 언어입니다 : P
#
않은가?