W całym alfabecie
W tym wyzwaniu masz problemy z zapamiętywaniem liter alfabetu. Aby to obejść, idź w górę i w dół alfabetu, aż dojdziesz do litery.
Ponieważ chcesz, aby Twój kod był przenośny, będziesz pisać go z blokami liter. Masz ograniczoną liczbę bloków liter, ponieważ większość z nich została skradziona, dlatego musisz upewnić się, że Twój kod jest tak krótki, jak to możliwe.
Przykłady
Pary wejścia / wyjścia są oddzielone pustą linią:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!
Wyzwanie
Twoim celem jest połączenie sąsiednich liter ze wszystkimi literami pośrednimi alfabetu ( A-Za-z
) między nimi. Jeśli wielkość liter różni się, wielkość liter należy przekształcić na środku. Jeśli wielkie litery nie mogą być równomiernie przekształcone w środku, rozpadają się po środku. Jeśli znak nie jest alfabetyczny, nie należy przeprowadzać transformacji.
Zwycięski
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach!
-10% Bonus: jeśli Twój łańcuch zawiera cyfry
adB
powinien się przekształcić,abcdCB
ponieważ c znajduje się w środku d i b.Odpowiedzi:
Pyth, 40 bajtów
Wypróbuj online.
źródło
Python 2,
303291288282276261253 bajtówJest to zupełnie inny algorytm niż algorytm Hannesa Karppy. Po wielu latach gry w golfa udało mi się znacznie poprawić długość. Myślę, że ten algorytm może pozwolić na jeden z najkrótszych kodów w innych językach, szczególnie w językach z pętlami „do-while” i wbudowanymi funkcjami signum. Sugestie dotyczące dalszej poprawy mile widziane. (Coś mi mówi, że cała wewnętrzna pętla powinna zostać przepisana jako lista).
źródło
JavaScript (ES6),
198197194 bajtówStosowanie
Wyjaśnienie
źródło
\w
zakończy się niepowodzeniem z cyframi. Spróbuj „09”a>b?a-b:b-a
... i jest więcej innych „standardowych” sztuczek, aby skrócić javascript. Metodą interpolacji możesz pobić mój wynik. Sprawdź wskazówki na tej stronieJavaScript ES6, 168 (186-10%)
176 193Edytuj Zmodyfikowano, aby uzyskać premię 10%
Przetestuj poniższy fragment kodu przy użyciu przeglądarki zgodnej z EcmaScript 6 (używam FireFox)
źródło
Python 2, 349 bajtów
Jest o wiele za długi, ale przynajmniej pierwszy.
źródło