有n个小木块排成一排,每个小木块向下的一面涂有红、黄、蓝三种颜色之中的一种(约定:0表示红色,1表示黄色,2表示蓝色)。游戏开始时,要求通过翻着与交换方式对小木块重新排列(翻看的规则为每个小木块只能看一次),最终使相同颜色的木块排列在一起,如下图所示
设计一个翻看与交换的方案,实现上面的要求。例如,设中间状态如下:
此时,从A处开始进行翻看交换:
若A为红色,则不用交换;
若A为蓝色,交换一次,即A与B交换;
若A为黄色,交换两次,即A与B交换一次,然后B与C再交换一次继续翻看交换下一个积木直到完成排列,游戏结束。另外,初始状态A为第一块积木,B和C为均最后一块积木。
10
0 0 1 2 2 0 1 0 0 0
4