You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构造删除隔位输入符号并合并无空白的图灵机:状态图合并困惑求解

图灵机实现:隔位删除+无空白拼接方案

需求明确

先确认规则:保留输入字符串从左数奇数位置的符号(第1、3、5...位),删除偶数位符号,最终将剩余符号左移拼接成无空白的连续字符串(对应示例:输入010101→保留第1、3、5位的0→输出000;输入10011→保留第1、3、5位的1、0、1→输出101)。

分阶段状态设计(解决多符号拼接困惑)

我们把图灵机拆成两个核心阶段,重点针对你困惑的多符号拼接部分设计逻辑:


阶段1:标记待删除的偶数位符号

用特殊标记#标记所有要删除的偶数位,避免后续和空白混淆:

  • q0(初始状态,读头在最左):
    • 读0/1:右移,进入q1(此时读头处于偶数位)
    • 读□(空白):直接进入终止状态q_end
  • q1(处理偶数位):
    • 读0/1:改写为#,右移,进入q2
    • 读□:进入阶段2的q3(开始拼接)
  • q2(回到奇数位):
    • 读0/1:右移,进入q1
    • 读□:进入阶段2的q3

阶段2:左移填补空白(多符号拼接核心)

这部分的关键是读取右侧有效符号的具体值(0或1),再复制到左侧的标记位置,替代单符号场景下的直接覆盖:

  • q3:左移,直到遇到#或最左端,进入q4
  • q4(寻找待填补的标记位):
    • 读#:右移,进入q5(准备读取右侧的有效符号)
    • 读□:进入q_end(所有空白已填补完成)
  • q5(读取右侧有效符号):
    • 读0/1:记录当前符号值,将当前位置改写为□,右移,进入q6
    • 读□:左移,进入q7(清理末尾多余空白)
  • q6(将符号写入标记位):
    • 左移,直到遇到#,将#改写为之前记录的0/1,左移,回到q3,继续处理下一个标记位
  • q7(清理末尾空白):
    • 左移,直到遇到0/1,右移一格,将该位置改写为□,进入q_end

示例验证(输入10011)

  1. 阶段1处理后:1 # 0 # 1 □
  2. 阶段2处理:
    • 找到第一个#,右侧是0→把#改成0,原0位置变空白:1 0 □ # 1 □
    • 再找到#,右侧是1→把#改成1,原1位置变空白:1 0 1 □ □ □
    • 清理末尾空白,最终得到101□□□(输出取非空白连续部分)

内容的提问来源于stack exchange,提问作者Kieran Anderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:25:25