擅长:python、mysql、java
<p>假设<code>newstate</code>是一个有效的dict,其中键/值对对应于您的状态替换(如果您希望<code>100</code>转换为<code>011</code>,<code>newstate</code>将具有{<cd5>}),则可以对拆分字符串执行列表理解:</p>
<pre><code>changed = ''.join(newstate[c] for c in prev)
</code></pre>
<p>其中<code>prev</code>是您以前的状态字符串。即:</p>
^{pr2}$
<p>然后,可以使用此列表组件通过在列表理解中调用自身来更改字符串本身:</p>
<pre><code>>>> changed = '1010101'
>>> changed = ''.join(newstate[c] for c in changed)
>>> changed
'0101010'
</code></pre>
<p>原始代码中有基本的流程,但需要对其进行优化。psuedo代码看起来像:</p>
<pre><code>newstate = dict with key\value mapping pairs
original = input
changed = original->after changing
while changed != original:
changed = changed->after changing
print changed
</code></pre>