Twoim zadaniem jest rozszyfrowanie niepustego łańcucha składającego się z drukowalnych znaków ASCII z zakresu [32..126] .
Odczytywanie ciągu znaków na znak:
- za każdym razem, gdy napotkasz małą literę, skojarz ją z następną wielką literą, zaczynając od „A”
- za każdym razem, gdy napotkasz wielką literę, zamień ją na małą literę, z którą jest skojarzona
- inne postacie nie wymagają specjalnego przetwarzania i pozostały bez zmian
Przykład
Dla ciągu wejściowego "endlAsEBAEE"
:
- Skojarz
e
zA
,n
doB
,d
doC
il
doD
- wymienić
A
ze
- Associate
s
toE
- wymienić
EBAEE
zsness
Ostateczne wyjście to "endlessness"
.
Wyjaśnienia i zasady
- Gwarantowany ciąg wejściowy zawiera każdą małą literę maksymalnie raz. Wszystkie dalsze wystąpienia zostaną zastąpione odpowiednią wielką literą.
- Gwarantowany ciąg wejściowy. (Nie napotkasz dużej litery, która nie jest jeszcze powiązana z małą literą).
- Gdy wielka litera zostanie powiązana z małą literą, może, ale nie musi być użyta później w ciągu. Na przykład
C
iD
nie są używane w powyższym przykładzie. - To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach!
Przypadki testowe
Wejścia:
abcd
honk! ABCD!
abrAcAdABCA
endlAsEBAEE
helCo wDrCd!
dermatoglyphics
progBamFinD AuzJles & cCdL DCKf
sphinx of black quKrtz, jOdge my vGw. K NODLM IPGZE HGF SOWBA GYVP QCV JKRX TGU.
petBr AiABD AEckBd a ABFG of AEFGlBH ABAABDs. hJw mIny AEFGLBH ABAABDM HEH ABCBD AEABD AEFG?
Odpowiedzi:
abcd
honk! honk!
abracadabra
endlessness
hello world!
dermatoglyphics
programming puzzles & code golf
sphinx of black quartz, judge my vow. a quick brown fox jumps over the lazy dog.
peter piper picked a peck of pickled peppers. how many pickled peppers did peter piper pick?
Odpowiedzi:
Galaretka ,
87 bajtówWypróbuj online!
Jak to działa
źródło
05AB1E , 6 bajtów
Kod:
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
źródło
ʒ.l}Aus‡
.JavaScript (ES6), 62 bajty
Każda wielka litera jest konwertowana na wartość podstawową 36, pomniejszoną o 10.
Następnie dopasowujemy małą literę o tym indeksie.
Pokaż fragment kodu
źródło
Pyth, 36 bajtów
Wypróbuj tutaj
Wyjaśnienie
źródło
Stax , 11 bajtów
Uruchom i debuguj
źródło
R , 79 bajtów
Wypróbuj online!
źródło
scan(,""
pełnego programu zamiast funkcji, poza tym staram się znaleźć jakąkolwiek poprawę ...Perl 5 z
-p
, 27 bajtówWypróbuj online!
-2 bajty dzięki @breadbox !
źródło
s///gr
zy///cdr
.Z80Golf , 37 bajtów
Wypróbuj online!
z80 radzi sobie całkiem nieźle! Oto demontaż:
Wskazujemy zarówno HL, jak i BC na
$ff00
zasięgdec
i używamyrst $38
jako krótkiej alternatywy dlacall $8000
, ale poza tym nie dzieje się wiele sztuczek.źródło
Siatkówka , 25 bajtów
Wypróbuj online! Wyjaśnienie:
Dopasuj małe litery.
Zastąp każdą literę zdegenerowanym zakresem. (Zapobiega to traktowaniu go przez klasę znaków późniejszą transliteracją; odwrotnego ukośnika nie można używać, ponieważ niektóre małe litery mają specjalne znaczenie po odwrotnym ukośniku).
Wymień zdegenerowane zakresy, ale bez separatorów linii i poprzedzające
T`L`
.Oceń wynikowy program transliteracji na oryginalnym wejściu.
źródło
Python 2 , 78 bajtów
Wypróbuj online!
źródło
Java (JDK 10) , 109 bajtów
Wypróbuj online!
źródło
C (gcc) , 105 bajtów
Wypróbuj online!
źródło
Galaretka , 11 bajtów
Wypróbuj online!
źródło
Pyth , 7 bajtów
Widelec genialnej galaretki Dennisa
Wszystkie przypadki testowe.
źródło