出于多种原因,Piet是一种有趣的编程语言。今天,我们将集中讨论一个原因:roll命令。roll命令最初来自PostScript,是一种操作堆栈的有效方法。
roll命令弹出堆栈的顶部两个元素,并将它们用作参数。我们将第一个弹出turns
的值称为第二个值depth
。转到深度n将占据堆栈的最顶部元素,使其成为堆栈中的第n个元素,并将其上方的每个元素向上移动一个。如果turns
为负,则朝相反方向进行。也就是说,第n个元素移到顶部,而其他元素下移。这是重复的abs(turns)
次数。
挑战
编写一个程序或函数,该程序或函数接受堆栈并在执行滚动后返回该堆栈。
规则
- 输入和输出可以是列表,数组,带定界符的字符串,一次传入一个元素或任何其他合理格式。输出必须与输入具有相同的格式。
depth
永远不会为负,也永远不会大于堆栈的长度。- 输入堆栈将始终包含至少两个元素。
- 这是代码高尔夫球,因此每种语言中最短的答案将获胜。因此,我不会接受答案。
- 禁止出现标准漏洞。
测试用例
in: out:
2
4
1 3
2 4
3 1
4 2
5 5
6 6
in: out:
-2
3
1 2
2 3
3 1
in: out:
-42
0
1 1
2 2
3 3
4 4
5 5