10张牌隔2张跳,求算法,该怎么解决

10张牌隔2张跳,求算法
10张牌,摆成一排,要求隔2张跳,把牌最终摞成2张一堆


------解决方案--------------------
算法自己写,怎么解都告诉你了

01 23 45 67 89

expand()函数
{
for(里面每个没展开的组合)
{ if(expandLeft(idx))往左展开
    return expand();

 if(expandRight(idx))往右展开
    return expand();
}
 返回是否全部展开完毕.
}


第一次进去.
{
展开01,left不可展开,right可以展开
展开后变为0 23 1 45 67 89,记录下展开的位置和方向,继续递归   (0,3)R
展开45 右 0 23 1 4 67 5 89 (4,7)R
展开23 右 0 2 1 4 3 67 5 89 (1 ,4)R
展开67 左 0 2 1 6 4 3 7 5 89 (3,6)L
展开89 左 0 2 1 6 4 3 8 7 5 9(6,9)L

0123456789
第一个解合并顺序
第6和9位置=69,        01234578 69  
(3,6)=37,        01245 37 8 69
(1,4)=15,        0 15 2 4 37 8 69
(4,7)=4,8        0 15 2 37 48 69
(0,3)=0,2        随便左右都可以了


}