Mój przyjaciel zrobił tłumacz seplenny pewnego dnia, to znaczy, że wziął ciąg i przekształcił s => th i S => th. To było dość długie i myślałem, że można grać w golfa.
Zadanie polega więc na utworzeniu programu / funkcji, która pobiera ciąg wejściowy, tłumaczy go na lisp i wyprowadza ciąg
Przypadek testowy
Sam and Sally like Sheep Tham and Thally like Thheep
Sally likes sausages Thally liketh thauthageth
Sally sells seashells Thally thellth theathhellth
Pamiętaj, że nie ma znaczenia, że h cały czas się powtarza
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź
s
aniS
nigdzie w nim.LOOK OUT A SNAKE!!! -> LOOK OUT A THNAKE!!!
Odpowiedzi:
Common Lithp, 62
Najpierw
(read)
dane wejściowe (powinien to być ciąg znaków). Ciągi w CL są sekwencjami, więc używamymap
do iteracji każdego znaku. Pierwszy argumentmap
reprezentujący typ wyniku (np. Mógłbym zbudować listę z wektora). Gdy jest tonil
, aka()
, wyniki są odrzucane. Funkcja, która jest odwzorowana na dane wejścioweprinc
( po prostu drukuje nieczytelnie) każdy znak, z wyjątkiem tych, które powinny zostać zastąpione.źródło
s
przezth
, jak każdy inny tego nie zrobił: Spójrz na te odpowiedzi Pyson.s
->th
,S
->Th
,th
->th
,Th
->Th
.(defmacro cathe (&rest args) `(case ,@args))
Siatkówka, 9 bajtów
Wypróbuj online!
Oczywista odpowiedź.
źródło
JavaThcript ETh6, 38 bajtów
Na początku wybrałem oczywiste rozwiązanie
Ale grałem w golfa o 4 bajty
Wykorzystuje to
i
flagę regex , która wyszukuje wzorce bez rozróżniania wielkości liter. Zaletą Javascript jest to, że możesz określić anonimową funkcję do obsługi (regex) zastępowania.Wypróbuj tutaj
źródło
'Tt'[b>'r']+'h'
, ale ma tę samą długośćGNU Sed - 17
Oczywista odpowiedź.
źródło
Galaretka , 13 bajtów
Wyrzucenie galaretowatego nowego, cienkiego atomu trantylu. Wypróbuj online!
źródło
Python 3 - 40 bajtów
Pierwszy golf!
Wykorzystuje metodę translacji
str
modułu, która akceptuje tabelę tłumaczeń. Tabela tłumaczeń jest prosta z kodem klucza jako kluczem i zamiast niego jako wartością.dict
str
źródło
JavaThcript ETh6, 43 bajty
Tetht Thuite:
źródło
V , 11 bajtów
Wypróbuj online!
W języku, który stworzyłem. To nie jest skończone, ale naprawdę dobre w regekth.
źródło
C, 50 bajtów
Zamień
\1
na rzeczywisty\x01
bajt.jimmy23013 zapisał bajt, a następnie zapisałem dwa kolejne, używając jego podejścia! Dzięki.
źródło
&c
parametr jest zepsuty. Ale tak nie jest, ponieważ w architekturze little-endian drugim bajtemint
będzie0x00
i faktycznie zakończy „ciąg” ... To jest okropnie sprytne, uwielbiam to!s(c){c=getchar();c+=c-83&~32?0:26625;s(printf(&c));}
char
.'h\1'
05AB1E,
1412 bajtówProsta odpowiedź.
Wypróbuj online
Zaoszczędź 2 bajty dzięki @Adnan
źródło
Java,
7165 bajtówPierwsza próba gry w golfa, więc dlaczego nie z Javą.
źródło
replace
zamiastreplaceAll
s->s.replace("S","Th").replace("s","th")
GNU AWK, 31 bajtów
Wystarczy użyć
gsub
funkcji do przetłumaczenia dolnej lub górnej litery S za pomocą wyrażenia regularnego i wydrukowania go później. Może pracować z plikami lub zstdin
jak w tym przypadkuźródło
CJam, 15 bajtów
Sprawdź to tutaj.
Wyjaśnienie
źródło
Python3 - 46 bajtów
Usunięto 4 bajty za pomocą @DenkerAffe !
źródło
lambda s:s.replace("s","th").replace("S","Th")
jest nieco krótszy.C # 6.0 - 58 bajtów
Pobiera ciąg wejściowy jako argument funkcji.
źródło
Haskell, 36 bajtów
źródło
f's'=...
Char
s ...Rdza, 46 bajtów
Wypróbuj online!
źródło
PHP, 42 bajty
jeśli jest uruchamiany z pliku:
Uruchom jako:
źródło
php -d error_reporting=0
aby ukryć powiadomienia.TI-Basic, 126 bajtów
źródło
Str1
nigdy się nie zmienia iAns
na końcu będzie zawierać liczbę.Str1
ponownie uratować ...Java, 101 bajtów
Zauważ, że jest to kompletny program w przeciwieństwie do poprzedniej odpowiedzi Java .
Premia ( najpierw należy przekazać
preprocesorowi CTHEpreprocessororTHEE):źródło
Pyth, 14 bajtów
Zestaw testowy
Dzięki @LeakyNun za wykrycie literówki!
źródło
MATL , 17 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Python 3, 53 bajty
Stosowanie:
źródło
lambda s:s.replace("s","th").replace("S","Th")
Zastosowanie:(lambda s:s.replace("s","th").replace("S","Th"))(s)
GameMaker Language, 74 bajty
źródło
Matlab, 39 bajtów
Proste podejście:
źródło
Emacth Lithp, 61 bajtów
Emacs Lisp stara się być mądry podczas zamiany tekstu, ale ta inteligencja psuje się, gdy zastąpiony ciąg zajmuje tylko jedną spację, tj. Wielką literę S. Aby zapobiec konwersji tego słowa „Sam i Sally” na „THam i THally”, całe słowo jest dopasowany zamiast. Jednak to również obsługuje „SAM i Sally” tak, jak byśmy tego chcieli, tj. Produkują „THAM i Thally”.
źródło
kod maszynowy x86, 19 bajtów
W hex:
Dane wejściowe::
ESI
ciąg wejściowy,:EDI
bufor wyjściowy.Demontaż:
źródło
test al, 'S'
do sprawdzenia obu narazBefunge 98,
3749 bajtówOrginalna wersja :
Zakończenie wydania, zgodnie z konsensusem:
Pozostawia to dużą lukę w siatce kodu, z której nie jestem bardzo zadowolony. Zajmę się tym, kiedy będę miał czas.
49. bajt to spacja na końcu drugiej linii, zawierająca prostokątną siatkę, niezbędna, aby uniemożliwić ccbi (i prawdopodobnie innym tłumaczom) wypaczenie i wydrukowanie nieskończonej linii „Th”.
źródło
35 Bajtów Julii:
Wypróbuj online! (obejmuje wszystkie przypadki testowe)
źródło
SpecBASThpecBATh - 53 bajtyźródło