รับสตริงที่มีเพียง 0 ของ 1, 2 และวงเล็บส่งออกต้นไม้ไวยากรณ์ของสตริง
A 2
ต้องการ 2 อาร์กิวเมนต์ - หนึ่งทางซ้ายและอีกหนึ่งทางขวา
1
ต้องอาร์กิวเมนต์เดียว - ทั้งด้านซ้ายหรือขวา
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
การป้อนข้อมูลที่ถูกต้อง?