04-08移動字母

來源:互聯網
上載者:User

標籤:java   編程   

移動字母

2x3=6個方格中放入ABCDE五個字母,右下角的那個格空著。

和空格子相鄰的格子中的字母可以移動到空格中,比如,圖中的C和E就可以移動,移動後的局面分別是:

A B

D E C

A B C

D E

為了表示方便,我們把6個格子中字母配置用一個串表示出來,比如上邊的兩種局面分別表示為:

AB*DEC

ABCD*E

題目的要求是:請編寫程式,由使用者輸入若干表示局面的串,程式通過計算,輸出是否能通過對初始狀態經過若干次移動到達該狀態。可以實現輸出1,否則輸出0。初始狀態為:ABCDE*

使用者輸入的格式是:先是一個整數n,表示接下來有n行狀態。程式輸出也應該是n行1或0

例如,使用者輸入:/p>

3

ABCDE*

AB*DEC

CAED*B

則程式應該輸出:

1

1

0

--------------------------------------------------------------------------------------------------------------------------------



可以這樣看,字母的移動與唯一的“空格”的移動具是等效的。


我們可以考慮空格的移動,這樣更簡便。


由初始狀態開始,移動空格後,形成新的狀態。不斷地增加新的狀態,直到包含了所有的可能狀態。




也可以遞迴的想法:


  由初始狀態一步就可以達到的狀態判為有解;


  否則,由衍生狀態繼續遞迴求解。


  為防止無限期地調用下去,必須考慮結束遞迴的條件。比如:考慮遞迴深度不能超過總的格子的數目

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.