考虑过字母表语法{ 0
, 1
, ?
, :
}由定义的产生式规则
小号→交通
0
┃1
┃0
?
小号:
小号┃1
?
小号:
小号
给定从s生成的字符串,将其解析?:
为右关联的表达式(例如,a?B?X:Y:c?d:e?f:g
means a?(B?X:Y):(c?d:(e?f:g))
),并使用以下语义对其进行求值:
eval(0) = 0
eval(1) = 1
eval(0?a:b) = eval(b)
eval(1?a:b) = eval(a)
如果结果为0,则输出一些固定值;如果输出为1,则输出不同的固定值。在答案中指定您选择的输出值(例如0
/ 1
或False
/ True
)。
测试用例
0 -> 0
1 -> 1
0?0:1 -> 1
0?1:0 -> 0
1?0:1 -> 0
1?1:0 -> 1
0?1?0:1:1 -> 1
1?0?1:1:1 -> 1
1?0:1?0:1?1:1 -> 0
1?1?1:0?1?0:0:0:0 -> 1
1?0:1?0?1:1?1:0:1?1?1:1:1?0:1 -> 0
1?1?1:0?0?1:1:0?1:0:1?1?0?0:0:1?1:0:0?1?0:1:1?0:1 -> 1
0?0?1?0?0:1:0?0:0:0?0?1:1:1?0:1:0?0?0?1:0:0?1:1:1?1?0:1:1 -> 0
规则
S → T | T ? S : S
,会更简单T → 0 | 1
,而无需谈论关联性?