旋转列表 [英] Rotating a list
本文介绍了旋转列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何旋转列表
有关,例如。
$ ARR =阵列(A,B,C,D,E,F,G);
现在旋转指数为3。该清单应旋转从D开始。 最终的名单应该是
D E F G A B C
任何人都可以提出一个解决方案?我不想使用内置的功能,这应该是就地进行。
解决方案
$ ARR =阵列(A,B,C,D,E ,F,G);
$ I = 3;
$ ARR2 = array_merge(array_slice($改编,$ I),array_slice($改编,0,$ I));
后续代码var_dump($ ARR2);
另一种解决方案:
$ ARR =阵列(A,B,C,D,E,F,G);
$ ARR2 =阵列();
$移= 3;
为($ I = $移位; $ I<计数($ ARR); $ I ++){
$ ARR2 [] = $改编[$ i];
}
为($ i = 0; $ I< $移; $ I ++){
$ ARR2 [] = $改编[$ i];
}
后续代码var_dump($ ARR2);
没有临时数组解决方法:
$ ARR =阵列(A,B,C,D,E,F,G);
为($ J = 0; $ J&所述; 3; $ J ++){
$ first_letter = $改编[0];
为($ i = 1; $ I<计数($ ARR); $ I ++){
$常用3 [$ I - 1] = $改编[$ i];
}
$常用3 [计数($ ARR) - 1] = $ first_letter;
}
后续代码var_dump($ ARR);
How do I rotate a list
For eg.
$arr = array(a,b,c,d,e,f,g);
Now the rotating index is 3 . The list should be rotated starting from d. The final list should be
d e f g a b c
Can anyone suggest a solution for this? I dont want to use built in function and this should be done inplace.
解决方案
$arr = array('a','b','c','d','e','f','g');
$i = 3;
$arr2 = array_merge(array_slice($arr, $i), array_slice($arr, 0, $i));
var_dump($arr2);
Another solution:
$arr = array('a','b','c','d','e','f','g');
$arr2 = array();
$shift = 3;
for ($i = $shift; $i < count($arr); $i++) {
$arr2[] = $arr[$i];
}
for ($i = 0; $i < $shift; $i++) {
$arr2[] = $arr[$i];
}
var_dump($arr2);
Solution without temporary array:
$arr = array('a','b','c','d','e','f','g');
for ($j = 0; $j < 3; $j++) {
$first_letter = $arr[0];
for ($i = 1; $i < count($arr); $i++) {
$arr[$i - 1] = $arr[$i];
}
$arr[count($arr) - 1] = $first_letter;
}
var_dump($arr);
这篇关于旋转列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文