给定一个仅包含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))
—
蓝色
实际上我在想这是1(2(1(0),0));-)
—
Neil
我仍然看不到为什么
—
feersum
0120210
也不能解析为2[4](2[2](1[1](0[0]), 0[3]), 1[5](0[6]))
括号中的数字指示字符串中的位置。
101
也big昧。
10201
有效的输入?