To wyzwanie jest inspirowane memem Men of Culture .
Mem polega na usunięciu części oryginalnego podpisu,
Ach, widzę, że jesteś także kulturą.
aby wyglądało na to, że postać mówi coś innego.
Wyzwanie polega na napisaniu programu, który, biorąc pod uwagę dane wejściowe, pokaże, w jaki sposób oryginalne zdanie można usunąć, aby uzyskać ciąg wejściowy.
Zasady:
- Użyj
-
znaku, aby przedstawić wygaszoną postać. - Nie można dodawać dodatkowych liter, aby uzyskać ciąg wejściowy
- Możesz traktować porównania ciągów jako bez rozróżniania wielkości liter
- Możesz zignorować białe znaki w porównaniach ciągów
- Jeśli podstawienie nie jest możliwe, wypisz wartość fałszowania.
- Nadmiarowe białe znaki możesz również zastąpić
-
, choć nie jest to wymagane. - Tam, gdzie możliwych jest wiele rozwiązań, możesz wypisać dowolne z nich.
Przypadki testowe:
Podstawowy:
Ah, I see you're a well.
> Ah, I see you're a --- -- ------- -- well.
Ah, I see well.
> Ah, I see ------ - --- -- ------- -- well.
Obudowa krawędzi 1:
What did you just say about me, you little
> false
Przypadek krawędzi 2 (edytowany):
*no input*
> --- - --- ------ - --- -- ------- -- -----
Pośredni:
Ah, I see you're Orwell.
> Ah, I see you're - --- o- -----r- -- well.
Ah, ymca.
> Ah, - --- y----- - m-- -- c------ a- ----.
Ah, a manual.
> Ah, - --- ------ a man -- -u----- a- --l-.
OR: > Ah, - --- ------ a man -- -u----- a- ---l.
Trudniej:
tea.
> --- - --- ------ - --- -- ---t--e a- ----.
eeeee
> --- - -ee -----e - --- -- ------e -- -e---
TL; DR: Biorąc pod uwagę ciąg wejściowy, wypisz ciąg, który reprezentuje sposób, w jaki oryginalny ciąg powinien zostać zmodyfikowany, aby pasował do ciągu wejściowego, używając „-” do przedstawienia wygaszonego znaku. Jeśli podstawienie nie jest możliwe, wypisz wartość fałszowania.
Code golf, więc wygrywa najkrótszy kod w bajtach.
Edycja: Wyjaśnienia
Ignoruj białe znaki w porównaniach ciągów oznacza, że możesz usunąć białe znaki przed porównaniem ciągów. Na przykład, wielkości wejściowe
Ah, a manual
iAh , a manual
są traktowane jako równe. Inne znaki interpunkcyjne, ' .
muszą zostać zachowane. Podobnie dla wyjścia,Ah, a manual
jest równeAh, amanual
.zastępcze zbędne białe znaki oznaczają spacje obecne w oryginalnym podpisie. Nie musisz zamieniać ich na „-”, ale jeśli zastępujesz sieci, dostajesz więcej punktów, to idź dalej.
"Ah,<5 SPACES HERE>a manual."
dać?Odpowiedzi:
> <> , 94 bajty
Wypróbuj online!
Rozróżniana jest wielkość liter, nie ignoruje się białych znaków ani interpunkcji i wyświetla pusty ciąg znaków, jeśli dane wejściowe są nieprawidłowe. Jeśli chcesz wypróbować inne ciągi, możesz po prostu zmodyfikować pierwszy wiersz po
"v
, o ile nie zawiera on"
ani bajtu zerowego.źródło
Siatkówka 0.8.2 , 117 bajtów
Wypróbuj online!Można zaoszczędzić 1 bajt, wymagając rozróżniania wielkości liter. Można zapisać 3 bajty, zwracając
--, - --- ---'-- - --- -- ------- -- ----.
puste dane wejściowe. Wyjaśnienie:Wstaw żądany tekst do wprowadzania.
Przenieś jak najwięcej znaków z żądanego tekstu do wyniku, jak to możliwe. Jeśli znak jest literą, musi również dopasować następną literę na wejściu, która następnie jest usuwana.
Jeśli na wejściu nie ma pasującej litery, zmień ją na a
-
i spróbuj ponownie.Jeśli na wejściu pozostały jeszcze litery, usuń wszystko, w przeciwnym razie usuń resztę wejścia.
źródło
Galaretka ,
58554845 bajtówWypróbuj online!
Bardziej czytelna wersja:
Podział kompresji struny:
źródło
Python 2 ,
126114 bajtówWypróbuj online!
Python 2 ,
108106 bajtówDane wejściowe to lista znaków.
Wypróbuj online!
źródło
(i=='')
może być(i<' ')
(używając tabulatora, najniższego znaku do wydrukowania)?JavaScript (Node.js) ,
122120 bajtówWypróbuj online!
Objaśnienie:
Można jeszcze bardziej zmniejszyć, ale zastępuje również białe spacje „-”. Jeśli jest to do przyjęcia, to
JavaScript (Node.js) , 112 bajtów
Wypróbuj online!
Zredukowane jeszcze bardziej, zastępuje tylko białe spacje po danym ciągu ciągiem „-”.
JavaScript (Node.js) , 105 bajtów
Wypróbuj online!
źródło
What did you just say about me, you little
What did you just say about me, you little
przypadku testowego. Twój program generuje--- - --- ------ - --- -- ------- -- w----
dane wyjściowe, co nie jest tym, czego wymaga specyfikacja wyzwania.JavaScript (Node.js) , 135 bajtów
Wypróbuj online!
Jeśli „może” oznaczać albo nie, albo nie, jest w porządku, to
JavaScript (Node.js) , 106 bajtów
Wypróbuj online!
źródło
Brain-Flak ,
764600 bajtówWypróbuj online!
Duże ulepszenia dzięki Jo Kingowi , szczególnie w konstrukcji strun, ale także kilka logicznych poprawek w głównej części. Wyjaśnienie od niego
Rozróżniana jest wielkość liter (więc „Ach, widzę, że jesteś Orwell.” Nie pasuje, ale „Ach, widzę, że jesteś Orwell.”), Białe znaki na wejściu nie są ignorowane, a niedopasowane białe znaki w oryginalnym ciągu to przekonwertowany na
-
. W moim rozumieniu wszystkie te opcje są prawidłowe.Wyjaśnienie:
źródło
Haskell ,
182174172171170169 bajtówWypróbuj online!
Nie golfowany:
źródło
Prolog (SWI) , 109 bajtów
Wypróbuj online!
Rozróżnia małe i wielkie litery oraz spacje.
-/2
Orzecznikiem jest głównym orzecznik z jego pierwszym argumentem jest ciąg wejściowy i drugi argument jest ciąg wyjściowy.źródło
JavaScript (Node.js), 103 bajty
Wypróbuj online!
Wielkość liter ma znaczenie.
źródło
Pyth , 78 bajtów SBCS
Pakiet
testowy Znaki niedrukowalne obecne w kodzie, patrz link do poprawnej wersji.
Rozróżniana jest wielkość liter, nie ignoruje białych znaków.
źródło
Perl 5
-F
, 192 bajtyWypróbuj online!
źródło