Liên quan: Thử thách tương tự (nhưng dễ hơn nhiều) theo chiều ngang: Tôi đã sửa nó (bằng băng)
Thử thách:
Cho một chuỗi chỉ chứa các chữ cái viết hoa và / hoặc chữ thường (tùy theo ý thích của bạn) và dòng mới, đặt rope
theo chiều dọc để sửa nó. Chúng tôi thực hiện điều này bằng cách kiểm tra sự khác biệt của hai chữ cái liền kề trong bảng chữ cái (bỏ qua việc bao quanh và chỉ đi xuống) và lấp đầy khoảng trống với bao nhiêu ROPE
/ rope
như chúng tôi cần.
LƯU Ý: Một điểm khác biệt quan trọng khác giữa thử thách này và thử thách Tôi đã sửa nó (bằng băng) là chúng tôi không lãng phí rope
thời gian như chúng tôi đã làm với tape
(được đề xuất bởi @JonathanAllan trong phần một của thử thách).
Thí dụ:
Đầu vào:
abc
bcd
ddd
eex
gfz
hka
imh
Đầu ra:
abc
bcd
Rdd
deE
efR
OPO
gEP
hRE
iOR
kO
PP
mE
R
O
P
E
R
O
P
E
R
O
x
P
z
a
E
R
O
P
E
R
h
Tại sao?
- Giữa
b
vàd
trong cột 1 phải làc
(chiều dài 1), vì vậy chúng tôi điền vào đâyR
; - Giữa
e
vàg
trong cột 1 phải làf
(chiều dài 1), vì vậy chúng tôi điền vào đâyO
; - Giữa
f
vàk
trong cột 2 phải làghij
(chiều dài 4), vì vậy chúng tôi điền vào đâyPERO
; - Giữa
k
vàm
trong cột 2 phải làl
(chiều dài 1), vì vậy chúng tôi điền vào đâyP
; - Giữa
d
vàc
trong cột 3 phải làefghijklmnopqrstuvw
(chiều dài 19), vì vậy chúng tôi điền vào đâyEROPEROPEROPEROPERO
; - Giữa
x
vàz
trong cột 3 phải lày
(chiều dài 1), vì vậy chúng tôi điền vào đâyP
; - Giữa
a
vàh
trong cột 3 phải làbcdefg
(chiều dài 6), vì vậy chúng tôi điền vào đâyEROPER
.
Quy tắc thử thách:
- Sự khác biệt chỉ áp dụng xuống dưới, do đó không có dây giữa
za
(cột 3 trong ví dụ trên). - Có thể có nhiều chữ cái liền kề giống như
dd
(cột 3 trong ví dụ trên). - Bạn sẽ tiếp tục sử dụng
ROPE
một cột tại một thời điểm để không lãng phí các bộ phận (được đề xuất bởi @JonathanAllan trong phần 1 của thử thách). - Bạn được phép lấy đầu vào ở bất kỳ định dạng hợp lý. Có thể là một chuỗi đơn, chuỗi-mảng / danh sách, ma trận ký tự, v.v ... Đầu ra có cùng tính linh hoạt.
- Bạn được phép sử dụng chữ thường và / hoặc chữ hoa theo bất kỳ cách nào bạn muốn. Điều này áp dụng cả cho đầu vào, đầu ra và
ROPE
. - Không gian lưu trữ là tùy chọn (lưu ý rằng số lượng chính xác của không gian hàng đầu là bắt buộc để các cột là chính xác).
Bất kỳ số lượng dấu vết và / hoặc dòng mới hàng đầu cũng là tùy chọn. - Bạn có thể giả sử rằng tất cả các trường hợp kiểm tra sẽ có cùng độ dài trên tất cả các hàng, vì vậy
a\naa
/[[a][a,a]]
sẽ không phải là một đầu vào hợp lệ. - Có thể không
ROPE
cần thiết, trong trường hợp đầu vào vẫn không thay đổi.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Các quy tắc chuẩn áp dụng cho câu trả lời của bạn, vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, các chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn.
- Ngoài ra, xin vui lòng thêm một lời giải thích nếu cần thiết.
Các trường hợp thử nghiệm:
As string:
Input: "abc\nbcd\nddd\neex\ngfz\nhka\nimh"
Output: "abc\nbcd\nRdd\ndeE\nefR\nOPO\ngEP\nhRE\niOR\n kO\n PP\n mE\n R\n O\n P\n E\n R\n O\n P\n E\n R\n O\n x\n P\n z\n a\n E\n R\n O\n P\n E\n R\n h"
As array-matrix:
Input: [[a,b,c],[b,c,d],[d,d,d],[e,e,x],[g,f,z],[h,k,a],[i,m,h]]
Output: [[a,b,c],[b,c,d],[R,d,d],[d,e,E],[e,f,R],[O,P,O],[g,E,P],[h,R,E],[i,O,R],[ ,k,O],[ ,P,P],[ ,m,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,O],[ , ,x],[ , ,P],[ , ,z],[ , ,a],[ , ,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,h]]
As string:
Input: "a\nz\na"
Output: "a\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nz\na"
As array-matrix:
Input: [[a],[z],[a]]
Output: [[a],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[z],[a]]
As string:
Input: "zz\nyy\nxx\nxx\ncc\ncc\nbb\nad"
Output: "zz\nyy\nxx\nxx\ncc\ncc\nbb\naR\n d"
As array-matrix:
Input: [[z,z],[y,y],[x,x],[x,x],[c,c],[c,c],[b,b],[a,d]]
Output: [[z,z],[y,y],[x,x],[x,x],[c,c],[c,c],[b,b],[a,R],[ ,d]]
As string:
Input: "a\nb\nc\nc\nx\nx\ny\nz"
Output: "a\nb\nc\nc\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nx\nx\ny\nz"
As array-matrix:
Input: [[a],[b],[c],[c],[x],[x],[y],[z]]
Output: [[a],[b],[c],[c],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[x],[x],[y],[z]]
As string:
Input: "zai\nybj\nxcq\nxcu\ncxw\ncxw\nbyr\nazw"
Output: "zai\nybj\nxcR\nxcO\ncRP\ncOE\nbPR\naEO\n Rq\n OP\n PE\n ER\n Ru\n OO\n Pw\n Ew\n Rr\n OP\n PE\n ER\n RO\n Ow\n P \n E \n x \n x \n y \n z "
As array-matrix:
Input: [[z,a,i],[y,b,j],[x,c,q],[x,c,u],[c,x,w],[c,x,w],[b,y,r],[a,z,w]]
Output: [[z,a,i],[y,b,j],[x,c,R],[x,c,O],[c,R,P],[c,O,E],[b,P,R],[a,E,O],[ ,R,q],[ ,O,P],[ ,P,E],[ ,E,R],[ ,R,u],[ ,O,O],[ ,P,w],[ ,E,w],[ ,R,r],[ ,O,P],[ ,P,E],[ ,E,R],[ ,R,O],[ ,O,w],[ ,P, ],[ ,E, ],[ ,x, ],[ ,x, ],[ ,y, ],[ ,z, ]]
As string:
Input: "asdljasdjk"
Output: "asdljasdjk"
As array-matrix:
Input: [[a,s,d,l,j,a,s,d,j,k]]
Output: [[a,s,d,l,j,a,s,d,j,k]]
As string:
Input: "asdljasdjk\nlkawdasuhq\nasjdhajksd"
Output: "asdljasdjk\nRkaOdasPhR\nOPOPEajEPO\nPEPER REP\nERERO ORE\nROROh POR\nOPOP EPq\nPEPE ROd\nERER OR \nRsRO PO \nO jP EP \nl w RE \na d Os \n P \n E \n R \n O \n u \n k "
As array-matrix:
Input: [[a,s,d,l,j,a,s,d,j,k],[l,k,a,w,d,a,s,u,h,q],[a,s,j,d,h,a,j,k,s,d]]
Output: [[a,s,d,l,j,a,s,d,j,k],[R,k,a,O,d,a,s,P,h,R],[O,P,O,P,E,a,j,E,P,O],[P,E,P,E,R, , ,R,E,P],[E,R,E,R,O, , ,O,R,E],[R,O,R,O,h, , ,P,O,R],[O,P,O,P, , , ,E,P,q],[P,E,P,E, , , ,R,O,d],[E,R,E,R, , , ,O,R, ],[R,s,R,O, , , ,P,O, ],[O, ,j,P, , , ,E,P, ],[l, , ,w, , , ,R,E, ],[a, , ,d, , , ,O,s, ],[ , , , , , , ,P, , ],[ , , , , , , ,E, , ],[ , , , , , , ,R, , ],[ , , , , , , ,O, , ],[ , , , , , , ,u, , ],[ , , , , , , ,k, , ]]
As string:
Input: "re\nop\npo\ner"
Output: "re\noR\npO\neP\n E\n R\n O\n P\n E\n R\n O\n p\n o\n P\n E\n r"
As array-matrix:
Input: [[r,e],[o,p],[p,o],[e,r]]
Output: [[r,e],[o,R],[p,O],[e,P],[ ,E],[ ,R],[ ,O],[ ,P],[ ,E],[ ,R],[ ,O],[ ,p],[ ,o],[ ,P],[ ,E],[ ,r]]
tape
Thử thách dễ hơn rất nhiều (imho). Và có, bạn có thể xuất ra một mảng của cột.
hope
thay thế không? Hy vọng là mạnh mẽ hơn dây thừng. (Đây là một nỗ lực kém về sự hài hước, không phải là một câu hỏi thực sự)