Trong trò chơi 2048, bạn có một lưới và bạn có thể di chuyển các yếu tố theo bốn hướng. Tất cả đều di chuyển theo hướng đó càng xa càng tốt. Đối với thử thách này, bạn sẽ được cung cấp một chuỗi 2D vuông, có đệm (có dòng mới hoặc danh sách các chuỗi), như vậy:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
hoặc là
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
Bốn hoạt động được left
, right
, up
, và down
. Kết quả của mỗi đầu vào trên:
Trái:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
hoặc là
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
Đúng:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
hoặc là
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
Lên:
abocdiel
mf ghsjv
un rp k
zq x t
w y
hoặc là
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
Xuống:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
hoặc là
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Mục tiêu của bạn là xoay vòng thao tác nào được thực hiện mỗi lần lặp, thực hiện chúng vào n
thời gian đầu vào . Vì vậy, nếu đơn đặt hàng của bạn là URDL
, và đầu vào nói bắt đầu bằng D
( 2
, được lập chỉ mục 0) và bạn cần 5
thao tác, bạn thực hiện D-L-U-R-D
, sau đó in.
Đầu vào:
- Một chuỗi trong một định dạng như trên
- Không gian lưu trữ là không cần thiết (nhưng chúng có thể hữu ích)
- Nó sẽ có ít nhất 2x2
- Sẽ chỉ chứa ASCII có thể in và dấu cách (và dòng mới trên định dạng đầu vào của bạn)
- Về mặt lý thuyết bạn nên hỗ trợ bất kỳ độ dài nào, nhưng hạn chế về bộ nhớ là ổn
- Một số nguyên không âm
n
, cho số lượng các hoạt động sẽ được thực hiện - Một số nguyên
0-3
hoặc1-4
, hoặc một chữ cáiUDLR
, mô tả hoạt động để bắt đầu.- Vì vậy, chương trình của bạn phải có thể bắt đầu hoặc kết thúc với bất kỳ hoạt động nào
- Bạn có thể định nghĩa chúng theo bất kỳ thứ tự nào cho mục đích bắt đầu, nhưng nó phải là một thứ tự nhất quán, vì vậy
U
đôi khi không thể làm theoR
và đôi khi cũng tuân theoL
.
- Hoạt động phải được thực hiện không tầm thường
- Bạn có thể thực hiện các thao tác theo thứ tự
LDRU
(trái, xuống, phải, lên) nhiều lần, nhưng khôngDLRU
hoặcUDLR
(vìUD
giống nhưD
vàLR
giống như đang làmR
.)
- Bạn có thể thực hiện các thao tác theo thứ tự
Đầu ra:
- Chuỗi sau khi thực hiện bốn
n
lần thao tác - Định dạng đầu ra phải giống với định dạng đầu vào của bạn
- Không gian lưu trữ là không cần thiết (nhưng chúng có thể hữu ích)
Thí dụ:
Ví dụ này sử dụng thứ tự URDL
.
Đầu vào:
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
Đầu ra cho n = 0-5: (chỉ in kết quả cuối cùng)
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
Thực hiện đẹp, không có căn cứ của tôi