Bu meydan okuma DailyProgrammer alt dizininde yayınlandı ve bir kod golf mücadelesi için harika bir aday olacağını düşündüm. Bir harfin bakiyesinin bakiye noktasından uzaklığına ve harfin değerine bağlı olup olmadığını belirleme. Bir harfin değeri, alfabedeki tek indeksli pozisyonu alınarak veya 64'ü ASCII değerinden çıkartarak belirlenebilir. Ayrıca, bir harfin değeri denge noktasından uzaklığı ile çarpılır. Bir örneğe bakalım 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.
Ancak, tüm kelimelerin dengelenmediğine dikkat edilmelidir. Örneğin, kelime WRONG
hiçbir yapılandırmada dengelenmez. Ayrıca, kelimeler iki harf arasında değil, bir harf üzerinde dengelenmelidir. Örneğin SAAS
, iki A
s'in ortasında bir mektup olsaydı, denge kurardı, ancak hiçbiri dengede değil.
Görev
Büyük harfli bir kelimeyi girdi veya işlev argümanları olarak alan bir program veya işlev oluşturmanız ve ardından iki çıktıdan birini üretmeniz gerekir:
Sözcük dengeye gelirse, sözcük sol taraf, boşluk, çapa harfi, başka bir boşluk ve sağ taraf ile yazdırılmalıdır.
function (STEAD) -> S T EAD
Kelime dengede değilse, kelimeyi ve ardından
DOES NOT BALANCE
function (WRONG) -> WRONG DOES NOT BALANCE
Tüm girişlerin büyük harf olacağını ve sadece alfa karakterleri olacağını varsayabilirsiniz.
Örnek G / Ç
function (CONSUBSTANTIATION) -> CONSUBST A NTIATION
function (WRONGHEADED) -> WRO N GHEADED
function (UNINTELLIGIBILITY) -> UNINTELL I GIBILITY
function (SUPERGLUE) -> SUPERGLUE DOES NOT BALANCE
Bu kod golf , yani bayt cinsinden en kısa cevap kazanır.
BALANCE DOES NOT BALANCE
function (A)
> -A
> `A` - yerine?