我为某种语言创建了一个BNF,并想检查某个输入是否对该BNF有效。例如,如果我有像BNF那样的
<palindrome> ::= a <palindrome> a | b <palindrome> b |
c <palindrome> c | d <palindrome> d |
e <palindrome> e | ...
| z <palindrome> z
<palindrome> ::= <letter>
<letter> ::= a | b | c | ... | y | z
字符串'bcdcb'和'hannah'将返回true。 字符串'joe'将返回false。
有人可以描述一种可以做到这一点的算法。
答案 0 :(得分:-1)
这个算法不适用于joe,因为它检查的是第一个和最后一个字母相同,它正在搜索回文词。 '乔'不是回文词。所以它没有通过就可以了。