Ponieważ rickrollowanie jest największym memem na Ziemi, [znasz zasady i ja też] masz napisać najkrótszy kod, który tekstowo może przekierować niczego niepodejrzewającego czytelnika. Niech [was w dół] będzie tekst wejściowy zawierający litery, znaki interpunkcyjne i spacje. Za każdym razem, gdy w tekście pojawia się wyrażenie [kłam i skrzywdź cię] z pierwszych dwóch zwrotek ...
We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guy
I just wanna tell you how I'm feeling
Gotta make you understand
Never gonna give you up
Never gonna let you down
Never gonna run around and desert you
Never gonna make you cry
Never gonna say goodbye
Never gonna tell a lie and hurt you
... wstaw resztę wiersza w nawiasach później.
Wejście
Dane wejściowe to łańcuch jednowierszowy zawierający tylko drukowalny ASCII z opcjonalnym końcowym znakiem nowej linii.
Wynik
Dane wyjściowe to ciąg jednowierszowy. Za każdym razem, gdy grupa słów (zdefiniowana jako ciąg wejściowy podzielony na spacje) pasuje do grupy słów w liniach powyższych tekstów, wstaw pozostałe słowa linii do łańcucha, zgrupowane w nawiasach kwadratowych.
Dodatkowy opis:
To jest golf golfowy , wygrywa najmniej bajtów. Możesz napisać program lub funkcję.
- w dopasowaniu powinna być rozróżniana wielkość liter:
we're
jest konwertowany na,we're [no strangers to love]
mimo żeWe're
jest pisany wielkimi literami. - pasowanie powinno być zachłanne.
Does he know the answer?
należy przekonwertować naDoes he know the [rules and so do I] answer?
zamiastDoes he know [the rules and so do I] the [rules and so do I] answer?
- Jeśli słowo pojawia się więcej niż jeden raz w podanych tekstach, wybierz jedno z wystąpień, aby uzupełnić wiersz.
- Jeśli słowo jest ostatnim słowem w wierszu lirycznym, nie wstawiaj niczego po nim.
- Interpunkcja jest częścią „słowa”.
I'm
jest pojedynczym słowem i nie może się z nim równaćI
. Podobnieyou.
nie pasuje do żadnego tekstu z powodu okresu.
Niektóre słowa I
pojawiają się wielokrotnie w całym tekście, a także na końcu wiersza. Ponieważ reguła jest taka, że można użyć dowolnego wystąpienia w powyższych tekstach, a jedno z tych wystąpień znajduje się na końcu wiersza, dopasowanie nie I
jest konieczne. Inną opcją I
jest [just wanna tell you how I'm feeling]
.
Jeśli dwa mecze pokrywają się, możesz wybrać jedno z nich. Oznacza to, że how I'm thinking
może stać się how I'm [feeling] thinking [of]
OR, how [I'm feeling] I'm thinking [of]
ponieważ I'm
może być częścią jednego how I'm
lub I'm thinking
. Jeśli jednak tekst wejściowy był po prostu I'm thinking
, wynik powinien być I'm thinking [of]
.
Dodatkowe przypadki testowe:
I don't know what I'm doing with my life.
is converted to
I [just wanna tell you how I'm feeling] don't know [the rules and so do I] what I'm [thinking of] doing with my life.
Many additional solutions are possible, since words like `I` appear multiple times.
Will someone please save me from these memes?
is converted to
Will someone please save me from [any other guy] these memes?
Two strangers walked into a bar. One said "hello." The other said "goodbye."
is converted to
Two strangers [to love] walked into a [lie and hurt you] bar. One said "hello." The [rules and so do I] other [guy] said "goodbye."
Wyzwanie inspirowane tym kolesiem .
from
powinien się staćfrom [any other guy]
).Odpowiedzi:
ziewać, 316 + 377 = 693
Pierwszym parametrem wiersza poleceń jest nazwa pliku tekstowego (375 bajtów + 2 dla wywołania = 377). Rickrolls wszystkie inne pliki. Drukuje do
stdout
.Nie golfił
Wyniki testów
Wejście:
Wynik:
źródło
what
iI'm
, co jest „niepochodne” dopasowaniem). 2. Nie udaje się to w trzecim przypadku testowym (zamienia dwie spacje w jedną). 3. Jeśli przechowujesz słowa w osobnym pliku, musisz policzyć ten plik (a także +2 za włączenie go doawk
polecenia) w swojej liczbie bajtów.awk
kodu źródłowego.gonna run
(oczekiwane wyjściegonna run [around and desert you]
, rzeczywiste wyjściegonna [tell a lie and hurt you] run [around and desert you]
). Ciągle również ciągnie wiele spacji z rzędu. Musisz policzyć plik tekstów piosenek w liczbie bajtów, ponieważ jest to niestandardowe wywołanieawk
programu.gawk
teraz separacji pól w celu zaoszczędzenia miejsca. Przechodzi teraz wszystkie przypadki testowe.