Ziel Bei einer Texteingabe, die keine Zeichen enthält, [
oder ]
führen Sie die folgenden Aktionen aus:
- Geben Sie für jede Instanz
Amen
mit mindestens einem Großbuchstaben (also für alleAmen
Ausschlussinstanzenamen
) dasselbe ausAmen
(behalten Sie die Großschreibung bei). - Für jede Instanz von
/all the people said[?: ]/i
(das ist ein regulärer Ausdruck) wird auch ausgegebenAmen
(in jedem Fall ist dies in Ordnung.)
Nach jeder Ausgabe können Sie ein beliebiges konstantes Trennzeichen auswählen , z. B. eine neue Zeile, ein Leerzeichen oder nichts.
Dies ist ein Code-Golf , also gewinnt das kürzeste Programm in Bytes.
Beispiel IOs
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
Bonus
- -20 Bytes , wenn Sie können „greifen“ die Zeichensetzung , die das folgt
Amen
, das heißtAmen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
, undAMEN!!!! => AMEN!!!!
.!
ist das einzige Zeichen, das mehrfach erhalten bleibt..?!,
sind die einzigen Zeichen, die so erhalten bleiben. - -40 Bytes, wenn anstelle von nichts eine Instanz von
amen
ausgegeben wirdHeresy! at index [i]
, wo[i]
der Index des beleidigenden Wortes ist, damen
. H.
Bonus IOs
Ein- und Ausgabe erfolgt in der Form input => output
. (Trennzeichen ist hier ein Leerzeichen.)
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!
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu generieren.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
quelle
amen
s in Ordnung sein?a
inamen
. ZBG amen => 2
wenn Ihre Sprache nullindiziert ist; 3 wenn es einindiziert ist.AMEN!!!! => AMEN!!!!
und dochand a final Amen... => Amen.
?Antworten:
Retina , 37 Bytes
Der Code ist 57 Byte lang und qualifiziert sich für den Bonus von -20 Byte . Probieren Sie es online!
Vielen Dank an @ MartinBüttner für die Portierung meiner Perl-Antwort an Retina!
Wie es funktioniert
quelle
([.,?]|!*)
Interpunktionsmuster für meine Antwort verwenden? Ich habe es gesehen und konnte es nicht sehen (und ich konnte auf keinen Fall eine bessere Lösung finden!). Es wird sicherlich nicht deine schlagen :), aber ich möchte nicht plagiieren, und ich bin mir nicht ganz sicher, wie man Lösungen für Unterprobleme wie dieses ausleiht.VBA, 193 Bytes
Keine Trennung, kein Regex, kein Bonus. Hatte eine Version, die beide Bonus bekam, aber VIEL länger war.
quelle
for i=1 to
auffor i=1To
Perl, 51 Bytes
Der eigentliche Quellcode enthält 70 Byte , muss mit
perl -nE
( +1 Byte ) ausgeführt werden und qualifiziert sich für den Bonus von -20 Byte .quelle
Python 2, 155 Bytes
Beispiel
quelle
JavaScript, 88 Bytes
108 Bytes - 20 Bytes (fängt Interpunktion ab)
quelle
Amen?!.
zur EingabeAmen?!.
undAmen!
zur Eingabe gedrucktAmen!!!
.grep und sed,
85838477 - 20 = 57 Bytesquelle
Amen?
für die Eingabe gedrucktall the people said??
. Die beste Lösung, die ich finden konnte, war, die Zeichenfolge durch zu ersetzenAmenx
.amen.
für die Eingabe gedrucktamen.
. Wenn Sie dies korrigieren, verkürzt sich Ihre Antwort: Ändern Sie einfachgrep -v '^[amen]*$'
zugrep \[AMEN]
.Perl, 103 - 60 = 43 Bytes
Zählt man den Shebang als einen, wird die Eingabe von stdin übernommen. Behält die Interpunktion für -20 Bytes bei und identifiziert die Ketzerei für -40 .
Beispielnutzung
Perl, 70 - 20 = 50 Bytes
Zählt man den Shebang als einen, wird die Eingabe von stdin übernommen. Behält die Interpunktion für -20 Bytes bei.
Beispielnutzung
quelle
ha]
. (66-20 = 46 Zeichen / 80-20 = 60 Bytes
Probieren Sie es hier aus - nur Firefox.
Zum ersten Mal hier bei PPCGSE. Hoffe, dieser Golf ist ziemlich gut.
EDIT: Eigentlich besiege ich CJam (in Char Count), das ist also ziemlich gut!
quelle
CJam, 57 Bytes
Der Code ist 97 Bytes lang und qualifiziert sich für den Bonus von -40 Bytes .
Probieren Sie es online im CJam-Interpreter aus .
quelle
JavaScript, 100 Bytes
quelle
x=prompt();
und Sie können auch verwendenalert(prompt().replace(...).replace(...).match)
JavaScript,
136135 - 40 - 20 = 75 BytesErläuterung:
Dieser Code wird von einem dreiteiligen regulären Ausdruck gesteuert, der Ergebnisse in einen
replace
Rückruf einspeist . Die Teile sind:all the people said[?: ]
- entspricht einfach dem gewünschtenall the people said
Muster(amen)([.,?]|!*)
- Gleicht jeden Fallamen
und Interpunktion (eine von.,?
oder null oder mehr!
, wodurch die Interpunktion optional ist) in separate Übereinstimmungsgruppen ab. - Gutschrift an Dennis für das Interpunktionsmuster.
- Stimmt mit jedem anderen Zeichen überein, das nicht zu den oben genannten Mustern gehörtDaher muss jede Übereinstimmung entweder eine Zeichenfolge für alle Personen, eine Amen-Übereinstimmung mit optionaler Interpunktion oder ein einzelnes Zeichen sein, das nicht Teil einer dieser Phrasen ist. Wir verwenden Logik im Ersetzungsrückruf, um die entsprechenden Teile der Zeichenfolge zu speichern und zu ersetzen und jedes andere Zeichen in die leere Zeichenfolge zu ändern.
quelle
Python 2, 191 - 40 = 151 Bytes
Kein regulärer Ausdruck und Bonus 2
quelle