2013-02-13 43 views

回答

1

寫在磁帶上的01。向右移動一個空格。如果您正在查看零點,請回到左側,直到看到零點。向右移動一個空格。如果你正在看一個,用兩個替換它,然後向右移動,直到看到一個零;然後繼續向右移動直到另一個零。用一個替換這個零。然後,移回去,直到看到兩個。用一個替換兩個。向右移動一個;如果你正在看一個,重複用兩個替換的過程,然後再回來。最終,您將耗盡先前的1,所以當您向右移動時,您正在查看零點。在這種情況下,向右移動到下一個零,並用一個替換它。在整個過程中循環(減去「寫01」部分)以獲得更長的字符串

直覺背後很簡單,如果你向右移動並看到一個零,向左移動兩個零,所有人在你找到的零之後的最後一個零和倒數第二個零之間,然後再添加一個,這兩個用於跟蹤你在複製的字符串中的位置。基本思路是合理的,但你應該嘗試寫出來的狀態和轉換這使它嚴格

例:

> 
^ 
>0 
^ 
>01 
^
>010 
^
>010 
^ 
>010 
^
>020 
^
>0200 
    ^
>0201 
^
>0201 
^
>0101 
^
>0101 
    ^
>01010 
    ^
>010110 
    ^