Cel Biorąc pod uwagę tekst, który nie zawiera znaków [
lub ]
wykonaj następujące czynności:
- Dla każdego wystąpienia
Amen
z co najmniej jedną wielką literą (czyli wszystkie przypadkiAmen
wykluczeniaamen
), wypisz to samoAmen
(zachowaj wielkie litery ). - Dla każdego wystąpienia
/all the people said[?: ]/i
(jest to wyrażenie regularne) również dane wyjścioweAmen
(każdy przypadek jest w porządku).
Po każdym wyjściu możesz wybrać dowolny stały separator, np. Nowy wiersz, spację lub nic.
To jest golf golfowy , więc wygrywa najkrótszy program w bajtach.
Przykładowe IO
Input: I said AMEN! AMEN, PEOPLE!
Output: AMENAMEN ; any separator is fine, I choose none.
Input: amen amen amen amen
Output: ; nothing
Input: ; empty
Output: ; nothing
Input: *blah blah blah* And all the people said?
Output: Amen
Input: all the people said:
Output: Amen
Input: AMEN AMeN AmeN aMEN amen AmEn
Output: AMEN AMeN AmeN aMEN AmEn
Input: All the people said Amen! And all the people said AMEN!
Output: Amen Amen Amen AMEN
Input: LAMEN! Amen.
Output: AMEN Amen
Input: AmenAmenAmenAmenAMENamen
Output: Amen Amen Amen Amen AMEN
Input: And he was like, "Amen", then we were all like, "Amen, bruh."
Output: Amen Amen
Input: And all the aMen people said.
Output: aMen
Premia
- -20 bajtów , jeśli można „chwycić” znaki interpunkcyjne, które następuje po
Amen
, to znaczyAmen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
, iAMEN!!!! => AMEN!!!!
.!
jest jedyną postacią, która może zostać zachowana wiele razy..?!,
są jedynymi postaciami, które można w ten sposób zachować. - -40 bajtów, jeśli istnieje instancja
amen
wyjściowaHeresy! at index [i]
zamiast niczego, gdzie[i]
jest indeks słowa obrażającego tjamen
.
Bonusowe operacje wejścia / wyjścia
Dane wejściowe i wyjściowe mają formę input => output
. (Separator tutaj jest spacją.)
BONUS 1
Can I get an Amen! => Amen!
AMEN! and AMEN! and a final Amen... => AMEN! AMEN! Amen.
Amen? Amen, and amEn! => Amen? Amen, amEn!
BONUS 2
The man sighed and said, "amen," and left. It's AMEN! => Heresy! at index [26] AMEN!
Liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik to suma dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:
# Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie tabeli wyników:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
źródło
amen
s muszą być w porządku?a
inamen
. Np.G amen => 2
Jeśli twój język jest indeksowany na zero; 3, jeśli jest indeksowany jednokrotnie.AMEN!!!! => AMEN!!!!
a jednakand a final Amen... => Amen.
?Odpowiedzi:
Siatkówka , 37 bajtów
Kod, jeśli 57 bajtów długości i kwalifikuje się do premii -20 bajtów . Wypróbuj online!
Dzięki @ MartinBüttner za przeniesienie mojej odpowiedzi Perla do Retiny!
Jak to działa
źródło
([.,?]|!*)
wzoru dopasowania interpunkcyjnego do mojej odpowiedzi? Widziałem to i nie mogłem tego nie zobaczyć (i na pewno nie mogłem znaleźć lepszego rozwiązania!). Z pewnością nie pokona twoich :), ale nie chcę plagiatować i nie jestem całkowicie pewien etykiety pożyczania rozwiązań podobnych problemów.VBA, 193 bajty
Bez separacji, bez regeksu, bez premii. Miał wersję, która dostała oba bonusy, ale była DUŻO dłuższa.
źródło
for i=1 to
nafor i=1To
Perl, 51 bajtów
Rzeczywisty kod źródłowy zawiera 70 bajtów , należy go uruchomić z
perl -nE
( +1 bajt ) i kwalifikuje się do premii -20 bajtów .źródło
Python 2, 155 bajtów
Przykład
źródło
JavaScript, 88 bajtów
108 bajtów - 20 bajtów (łapie znaki interpunkcyjne)
źródło
Amen?!.
dla danych wejściowychAmen?!.
iAmen!
danych wejściowychAmen!!!
.grep i sed,
85838477-20 = 57 bajtówźródło
Amen?
danych wejściowychall the people said??
. Najlepszym obejściem, jakie udało mi się znaleźć, było zastąpienie łańcuchaAmenx
.amen.
danych wejściowychamen.
. Naprawienie tego skróci twoją odpowiedź: po prostu zmieńgrep -v '^[amen]*$'
nagrep \[AMEN]
.Perl, 103–60 = 43 bajty
Licząc shebang jako jeden, dane wejściowe są pobierane ze standardowego wejścia. Utrzymuje interpunkcję dla -20 bajtów i identyfikuje herezję dla -40 .
Przykładowe użycie
Perl, 70-20 = 50 bajtów
Licząc shebang jako jeden, dane wejściowe są pobierane ze standardowego wejścia. Utrzymuje interpunkcję dla -20 bajtów.
Przykładowe użycie
źródło
ha]
. (Nieważne, właśnie widziałem komentarz OP, że dane wejściowe nie mogą zawierać nawiasów kwadratowych ... to pytanie zmieniło się tak wiele razy, że nie mogę śledzić.)𝔼𝕊𝕄𝕚𝕟, 66-20 = 46 znaków / 80-20 = 60 bajtów
Wypróbuj tutaj - tylko Firefox.
Pierwszy raz tutaj w PPCGSE. Mam nadzieję, że ten golf jest całkiem niezły.
EDYCJA: Właściwie, pokonuję CJam (według liczby znaków), więc to całkiem nieźle!
źródło
CJam, 57 bajtów
Kod ma długość 97 bajtów i kwalifikuje się do bonusu -40 bajtów .
Wypróbuj online w interpretatorze CJam .
źródło
JavaScript, 100 bajtów
źródło
x=prompt();
i możesz także używaćalert(prompt().replace(...).replace(...).match)
JavaScript,
136135–40–20 = 75 bajtówWyjaśnienie:
Ten kod jest oparty na trzyczęściowym wyrażeniu regularnym, które przekazuje wyniki do
replace
wywołania zwrotnego . Częściami są:all the people said[?: ]
- po prostu pasuje do wymaganegoall the people said
wzoru(amen)([.,?]|!*)
- dopasowuje dowolny przypadekamen
i interpunkcję (jeden.,?
lub zero lub więcej!
, co powoduje, że interpunkcja jest opcjonalna) w osobne grupy dopasowań - podziękowania dla Dennisa za wzór interpunkcyjny.
- pasuje do każdej innej postaci, nie będącej częścią powyższych wzorów, pojedynczoDlatego każde dopasowanie musi być albo ciągiem wszystkich ludzi, dopasowaniem Amen z opcjonalną interpunkcją lub pojedynczym znakiem nie będącym częścią żadnej z tych fraz. Używamy logiki w wywołaniu zwrotnym zamiennika, aby zapisać i zastąpić odpowiednie części łańcucha oraz zmienić każdy inny znak na pusty łańcuch.
źródło
Python 2, 191–40 = 151 bajtów
Brak wyrażenia regularnego i Bonus 2
źródło