任何人都可以帮助:(
L = {ww ^ r | (0,1)*}的w元素
就像:pseudo代码中的一样,请检查字符串是否反向等于自己?
任何人都可以提供帮助吗:((L = {ww ^ r |(0,1)*的w元素}}就像在:pseudo代码中一样,检查字符串是否反向等于自己?
策略是找到字符串的长度以确定中间位置,然后将磁带视为堆栈,以查看所有字符在该中点之前和之后是否都匹配。
这是可以做到的算法:
#
为止的每两个输入字符,请在最后一个0
之后写一个#
。这将跟踪“中间”的位置。阅读时标记输入。#
,则字符串长度为奇数,因此机器可能会停止并拒绝。#
。#
。#
,请停止并接受。#101100#
(这里的#
表示输入的边缘)。读取头位于第一个#
。# 1 0 1 1 0 0 #
开始(留出标记空间)# 1'0'1 1 0 0 # 0
# 1'0'1'1'0 0 # 0 0
# 1'0'1'1'0'0'# 0 0 0
#
,因此字符串的长度为偶数。在末尾写一个#:# 1'0'1'1'0'0'# 0 0 0 #
# 1 0 1 1 0 0 # 0 0 0 #
#
开始,从右侧标记输入,从左侧标记0
直到标记所有0
:# 1 0 1 1 0 0'# 0'0 0 #
# 1 0 1 1 0'0'# 0'0'0 #
# 1 0 1 1'0'0'# 0'0'0'#
# 1 0 1'1 0'0'# 0'0'0'#
# 1 0'1'1 0 0'# 0'0'0'#
1
和0
不匹配。停止并拒绝。