이 도전 과제는 DailyProgrammer subreddit에 게시되었으며 코드 골프 도전에 대한 훌륭한 후보가 될 것이라고 생각했습니다. 문자 균형을 결정하는 것은 균형점으로부터의 거리와 문자 값을 기반으로합니다. 문자의 값은 알파벳에서 하나의 색인 위치를 취하거나 ASCII 값에서 64를 빼서 결정할 수 있습니다. 또한 문자의 값에 균형점으로부터의 거리가 곱해집니다. 예를 살펴 보겠습니다 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.
그러나 모든 단어가 균형을 이루는 것은 아닙니다. 예를 들어, 구성에서 단어의 WRONG
균형이 맞지 않습니다. 또한 단어는 두 글자가 아닌 글자의 균형을 유지해야합니다. 예를 들어, SAAS
두 글자 가운데에 글자가 있으면 균형을 잡을 수 A
있지만 균형이 맞지 않습니다.
작업
대문자 또는 단어 를 입력 또는 함수 인수 로 사용하여 다음 두 출력 중 하나를 생성하는 프로그램 또는 함수 를 작성해야 합니다.
단어의 균형이 맞으면 왼쪽, 공백, 고정 문자, 다른 공백 및 오른쪽으로 단어를 인쇄해야합니다.
function (STEAD) -> S T EAD
단어의 균형이 맞지 않으면 단어를 인쇄 한 다음
DOES NOT BALANCE
function (WRONG) -> WRONG DOES NOT BALANCE
모든 입력이 대문자이고 알파벳 문자 만 있다고 가정 할 수 있습니다.
예제 I / O
function (CONSUBSTANTIATION) -> CONSUBST A NTIATION
function (WRONGHEADED) -> WRO N GHEADED
function (UNINTELLIGIBILITY) -> UNINTELL I GIBILITY
function (SUPERGLUE) -> SUPERGLUE DOES NOT BALANCE
이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
BALANCE DOES NOT BALANCE
function (A)
-> 와 같이 단일 문자 단어의 출력에서 공백을 생략 할 수 있습니까A
?