0과 1, 2와 괄호 만 포함 된 문자열이 주어지면 문자열의 문법 트리를 출력합니다.
A 2
에는 2 개의 인수가 필요합니다. 하나는 왼쪽에, 하나는 오른쪽에
A 1
는 왼쪽 또는 오른쪽에 단일 인수를 요구합니다
A 0
는 인수가 필요하지 않으며 기본 사례입니다.
한 쌍의 대괄호는 하나의 인수로 계산되며 대괄호의 내용은 나머지 문자열과 별도로 평가됩니다. 중첩 괄호 가능
입력 문자열은 항상 문자가 빠지지 않는 완전한 트리입니다. 문자열에는 올바른 단일 솔루션 만 있습니다. 함수는 정식 적이며 인수에 대한 모든 배열 2
이 허용됩니다. 이러한 요구 사항을 준수하지 않는 입력은 처리하지 않아도됩니다.
출력 문법 형식은 function(arguments)
재귀적인 형식입니다.
테스트 사례
0 --> 0
01 --> 1(0)
020 --> 2(0,0)
101 --> 1(1(0))
0120 --> 2(1(0),0)
0120210 --> 2(1(0),2(0,1(0)))
01210 --> 2(1(0),1(0))
(020)210 --> 2(2(0,0),1(0))
((020)20)1 --> 1(2(0,2(0,0)))
아니요, 1 (2 (0,1 (0))) 또는 2 (1 (0), 1 (0)) 일 수 있습니다.
—
Blue
실제로 나는 그것이 1 (2 (1 (0), 0)) ;-)라고 생각하고 있었다
—
Neil
난 아직도 왜 안보여
—
feersum
0120210
2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))
괄호로 묶은 숫자가 문자열의 위치를 나타내는 위치로 파싱 할 수없는 .
101
모호합니다.
10201
유효한 입력은?