图灵机识别回文串:设计与实现
TM 设计思想:
设计一个TM,可以识别语言ωωR,其中ωR是ω的逆串。我们可以使用两个指针,一个从字符串的开头开始,一个从字符串的末尾开始,同时向中间移动,并比较对应位置的字符是否相同。
TM 定义:
M = 'On input string w:
- 将输入字符串w复制到工作带上,并将两个指针分别指向工作带的开头和末尾。
- 重复以下步骤直到两个指针相遇: a. 比较两个指针指向的字符是否相同。 b. 如果不相同,则拒绝输入字符串w。 c. 如果相同,则将两个指针向中间移动一位。
- 如果两个指针相遇,接受输入字符串w。'
实例的识别过程:
假设输入字符串w = 'abba'。
- 初始化工作带为'abba',指针分别指向第一个字符a和最后一个字符a。
- 第一次比较指向的字符a和a相同,指针分别向中间移动一位,指向第二个字符b和倒数第二个字符b。
- 第二次比较指向的字符b和b相同,指针分别向中间移动一位,指向第三个字符b和倒数第三个字符b。
- 第三次比较指向的字符b和b相同,指针分别向中间移动一位,指向第四个字符a和倒数第四个字符a。
- 四个字符比较完毕后,指针相遇,接受输入字符串'abba'。
由于输入字符串w是回文串,该TM可以接受输入字符串w。
原文地址: https://www.cveoy.top/t/topic/7RE 著作权归作者所有。请勿转载和采集!