非确定性下推自动机和回文

时间:2019-02-28 15:39:14

标签: palindrome finite-automata pushdown-automaton

我需要在文本中找到回文(单词的长度<= 6,由大小写字母组成),并将其用于Pushdown Automata,但不幸的是,我对这些主题不太熟悉。有人可以解释一下我该如何编程吗?或完成某些文章或主题。我会为每条建议感到高兴!

1 个答案:

答案 0 :(得分:0)

一种简单的方法是在您的单词中间添加一个标志。开始将单词的每个字符推入堆栈,直到到达标志为止。到达标志后,您开始将字符从堆栈中弹出,并将其与单词的后半部分进行比较。

如果堆栈中的每个字符与下半部分中的每个对应字符匹配,则您的单词为回文。这是一个简单的解决方案,如果您了解这一点,那么您也可以对没有标志的解决方案进行更多的研究。

此外,我认为您最好的选择是查看其他答案,例如:How does a pushdown automaton know how to read a palindrome?,它很好地解释了自动机如何在各个回文长度(偶数和奇数长度)下工作,因为我的解决方案只能起作用长度均匀。