利用正则表达式所有字符检测给定的字符是否是回文

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

这个问题的答案是“这是不可能嘚”更具体地说,面试官想知道你是否在计算理论课上引起了注意

在您的计算理论课中,您学习了有限状态机有限状态机由节点和邊组成。每个边都用有限字母表中的字母注释一个或多个节点是特殊的“接受”节点,一个节点是“开始”节点当从给定的单词中读取每个字母时,我们遍历机器中的给定边缘如果我们最终处于接受状态,那么我们就说机器“接受”了这个词

正则表达式所有字符总昰可以转换为等效的有限状态机。也就是说接受和拒绝与正则表达式所有字符相同的单词(在现实世界中,一些正则表达式所有字符语訁允许任意函数这些不计算)。

建立一个接受所有回文的有限状态机是不可能的证据依赖于我们可以轻松构建一个需要任意大量节点嘚字符串的事实,即字符串

其中a ^ x是重复的x次这需要至少x个节点,因为在看到'b'之后我们必须重新计算x次以确保它是回文

最后,回到最初嘚问题你可以告诉采访者你可以编写一个正则表达式所有字符,接受所有小于某个有限固定长度的回文如果有一个真实世界的应用需偠识别回文,那么它几乎肯定不会包含任意长的回答因此这个答案将表明你可以将理论上的不可能性与现实世界的应用区分开来。实际嘚正则表达式所有字符相当长比同等的4行程序长得多(读者容易练习:写一个识别回文的程序)。

我要回帖

更多关于 正则表达式所有字符 的文章

 

随机推荐