在游戏2048中,您有一个网格,并且可以在四个方向上移动元素。他们都朝着这个方向努力。对于此挑战,将为您提供带填充的方形2D字符串(带有换行符或字符串列表),如下所示:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
要么
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
这四个操作是left
,right
,up
,和down
。以上输入中每个的结果:
剩下:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
要么
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
对:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
要么
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
上:
abocdiel
mf ghsjv
un rp k
zq x t
w y
要么
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
下:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
要么
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
您的目标是轮流在每次迭代中执行哪些操作,并在输入n
时间执行这些操作。因此,如果您的订单是URDL
,并且输入说要以D
(2
,索引为0的索引)开头,并且您需要进行5
操作,请执行D-L-U-R-D
,然后进行打印。
输入:
- 像上面格式的字符串
- 不需要尾随空格(但可能会有所帮助)
- 至少为2x2
- 仅包含可打印的ASCII和空格(以及每种输入格式的换行符)
- 理论上,您应该支持任何长度,但是内存限制可以
- 非负整数,
n
表示将要执行的操作数 - 一个整数
0-3
或1-4
,或一个字母UDLR
,描述开始的操作。- 因此,您的程序必须能够以任何操作开始或结束
- 您可以按开始的顺序以任何顺序定义它们,但必须是一致的顺序,因此
U
有时不能遵循R
,有时也不能遵循L
。
- 操作必须轻而易举地进行
- 您可以按
LDRU
(左,下,右,上)的顺序重复执行操作,但不能DLRU
或UDLR
(因为UD
与相同D
,并且LR
与相同R
)。
- 您可以按
输出:
- 进行四倍运算后的字符串
n
倍 - 输出格式必须与您的输入格式相同
- 不需要尾随空格(但可能会有所帮助)
例:
本示例使用order URDL
。
输入:
10 (number of times operations are applied)
0 (starts with Up)
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
n = 0-5的输出:(仅打印最终结果)
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
---------------
abocdiel
mf ghsjv
un rp k
zq x t
w y
---------------
abocdiel
mfghsjv
unrpk
zqxt
wy
---------------
el
dijv
chspk
bognrxt
amfuzqwy
---------------
el
dijv
chspk
bognrxt
amfuzqwy
---------------
eljvkxty
disprqw
chgnz
bofu
am
我漂亮的,不折不扣的实现
相关,但有所不同,因为一个字母可以“落在地图上”。
—
mbomb007
应该只打印最终结果,还是中间步骤?此外,在完成所有四个操作一次之后,结果是否只是循环的?(不确定,只是猜测)
—
Luis Mendo
只是最终结果。而且我确认这不是周期性的。
—
mbomb007
也就是说,仅执行四个操作就不会循环。期限将更长。
—
mbomb007 '17