【发布时间】:2019-09-06 13:11:17
【问题描述】:
我正在尝试解决字母表达式以获得有效的句子。
输入和输出的例子是:-
输入
实际:
((("one" . "two") | "twelve") . ("zero" | "o") . "six")
代币化:
['(', '(', '(', 'one', '.', 'two', ')', '|', 'twelve', ')', '.',
'(', 'zero', '|', 'o', ')', '.', 'six', ')']
输出
一二零六
一二六
十二点六
运营商
-
()- 必需分组运算符 -
[]- 可选分组运算符 -
.- 连接连接运算符 -
|- OR 连接运算符
. 运算符的优先级确实高于 | 运算符。
我无法理解我应该如何去做。 (我想用 Python 写代码)
【问题讨论】:
-
在您的输入中,每个双引号都被zero-width spaces 包围。这是故意的吗?
-
您需要编写一个分词器和一个(可能是递归下降)解析器。 SO 问题太宽泛了。
-
我想“十二零六”也是一个可能的结果。
标签: algorithm data-structures binary-tree binary-search-tree graph-algorithm