Thử thách này đã được đăng trên subreddit DailyProgrammer và tôi đoán rằng nó sẽ là một ứng cử viên tuyệt vời cho một thử thách golf mã. Xác định xem số dư của chữ cái có dựa trên khoảng cách của nó so với điểm cân bằng và giá trị của chữ cái không. Giá trị của một chữ cái có thể được xác định bằng cách lấy vị trí một chỉ mục của nó trong bảng chữ cái hoặc bằng cách trừ 64 từ giá trị ASCII của nó. Hơn nữa, giá trị của một chữ cái được nhân với khoảng cách của nó từ điểm cân bằng. Hãy xem một ví dụ STEAD
:
STEAD -> 19, 20, 5, 1, 4 ASCII values
This balances at T, and I'll show you why!
S T EAD -> 1*19 = 1*5 + 2*1 + 3*4
Each set of letters on either side sums to the same value, so
T is the anchor.
Tuy nhiên, cần lưu ý rằng không phải tất cả các từ cân bằng. Ví dụ, từ WRONG
không cân bằng trong bất kỳ cấu hình. Ngoài ra, các từ phải cân bằng trên một chữ cái, không phải giữa hai chữ cái. Ví dụ, SAAS
sẽ cân bằng nếu có một chữ cái ở giữa hai chữ số A
, nhưng vì không có chữ nào nên nó không cân bằng.
Nhiệm vụ
Bạn nên tạo một chương trình hoặc hàm lấy từ viết hoa làm đối số đầu vào hoặc hàm , sau đó tạo một trong hai đầu ra:
Nếu từ cân bằng, thì từ đó nên được in với bên trái, một khoảng trắng, ký tự neo, một khoảng trắng khác và phía bên phải.
function (STEAD) -> S T EAD
Nếu từ không cân bằng, bạn nên in ra từ, theo sau là
DOES NOT BALANCE
function (WRONG) -> WRONG DOES NOT BALANCE
Bạn có thể cho rằng tất cả đầu vào sẽ là chữ hoa và sẽ chỉ có các ký tự alpha.
Ví dụ I / O
function (CONSUBSTANTIATION) -> CONSUBST A NTIATION
function (WRONGHEADED) -> WRO N GHEADED
function (UNINTELLIGIBILITY) -> UNINTELL I GIBILITY
function (SUPERGLUE) -> SUPERGLUE DOES NOT BALANCE
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng.
BALANCE DOES NOT BALANCE
function (A)
->A
thay vì -> `A` không?