도전
이 도전에있어서, 산줄 M: x(Mx)*
은 각 생산에서 모든 x가 동일한 문자 인 문법 규칙을 따르는 것입니다 . 들여 쓰기를하면 산줄이 다음과 같이 보일 수 있습니다.
A
B
C
D
C
E
F
E
C
B
A
보시다시피, 측면에서 산처럼 보입니다.
공식적인 정의
- 모든 단일 문자
a
는 산악입니다. - 경우
S
산악 문자열과a
문자는 다음aSa
병치는 문자열 연결을 나타내며, 산악입니다. - 경우
aSa
와aTa
산악 문자열, 다음aSaTa
산악 문자열입니다. 이 규칙은이 패턴이 여러 번 반복된다는 것을 의미합니다. (즉aSaTaUa
,aSaTaUaVa
,aSaTaUaVaWa
... 모든 산이 있습니다.)
예
예를 들어 홀수 길이의 회문은 모두 산악입니다.
t
a
c
o
c
a
t
qwertytrasdfdgdsarewqjklkjq
덜 간단한 예입니다.
q
w
e
r
t
y
t
r
a
s
d
f
d
g
d
s
a
r
e
w
q
j
k
l
k
j
q
출력 예
a ==> true
aaa ==> true
mom ==> true
tacocat ==> true
qwertytrasdfdgdsarewqjklkjq ==> true
wasitacaroraratisaw ==> true
abcbcbcbcba ==> true
aaaaabcbbba ==> true
<empty string> ==> false
aa ==> false
pie ==> false
toohottohoot ==> false
asdfdghgfdsa ==> false
myhovercraftisfullofeels ==> false
규칙
- 이것은 의사 결정 문제이므로, 정확하고 일관되며 모호하지 않으며 프로그램이 유한 한 시간 안에 종료되는 한 true 또는 false의 표현은 유효한 출력입니다. 솔루션에 출력 규칙을 명시하십시오.
- 입력 문자열이 무엇인지 알 필요없이 출력이 참인지 거짓인지를 결정하는 것은 쉽지 않습니다. 이것이 사실 또는 허위 출력이 일정해야 함을 의미하지는 않지만 "줄이 산악인 경우 산악 줄을 인쇄하고 산악인이 아닌 경우 비열 줄을 인쇄하는"규칙은 명백한 이유로 금지 된 허점입니다.
- 다른 한편으로, "거짓에 대한 예외를 던져서 참으로 빠져 나간다"와 같은 규칙은 "단일 문자를 참으로 그리고 다른 것을 거짓으로 인쇄한다"
- 이것은 코드 골프이므로 가장 짧은 프로그램이 승리합니다.
- 표준 허점은 금지되어 있습니다.
wasitacaroraratisaw
합니까? 그것은 나에게 mountanous 보인다
wasitacaroraratisaw
실제로 산악 AFAICT
aaa
작동하지 않는 경우가 있습니다.
aaa
동일한 문자를 여러 레벨에서 사용해야 하는 테스트 케이스 가 좋습니다.