Objectif Étant donné une entrée de texte ne contenant pas de caractères [
ou ]
, effectuez les actions suivantes:
- Pour chaque instance d'
Amen
au moins une lettre majuscule (donc toutes les instances d'Amen
exclusionamen
), sortez la même choseAmen
(conservez les majuscules). - Pour chaque instance de
/all the people said[?: ]/i
(c'est une expression régulière), également sortieAmen
(dans tous les cas, ça va .)
Après chaque sortie, vous pouvez choisir n'importe quel séparateur constant , par exemple une nouvelle ligne, un espace ou rien.
Il s'agit d'un code-golf , donc le programme le plus court en octets l'emporte.
Exemples d'E / S
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
Prime
- -20 octets si vous le pouvez « saisir » la ponctuation qui suit le
Amen
, à savoirAmen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
etAMEN!!!! => AMEN!!!!
.!
est le seul caractère à être conservé plusieurs fois..?!,
sont les seuls caractères à être conservés ainsi. - -40 octets si, il y a une instance de
amen
sortie,Heresy! at index [i]
au lieu de rien, où[i]
est l'index du mot incriminé ieamen
.
IO bonus
L'entrée et la sortie sont de la forme input => output
. (Le séparateur ici est un espace.)
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!
Classements
Voici un extrait de pile pour générer à la fois un classement régulier et un aperçu des gagnants par langue.
Pour vous assurer que votre réponse s'affiche, veuillez commencer votre réponse avec un titre, en utilisant le modèle de démarque suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre, en les barrant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs nombres dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou que vous souhaitez répertorier les pénalités de drapeau d'interprète séparément), assurez-vous que le score réel est le dernier numéro de l'en-tête:
# Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de la langue un lien qui apparaîtra ensuite dans l'extrait de classement:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
la source
amen
s doivent-ils être en règle?a
dansamen
. Par exemple,G amen => 2
si votre langue est indexée zéro; 3 s'il est à un index.AMEN!!!! => AMEN!!!!
et pourtantand a final Amen... => Amen.
?Réponses:
Rétine , 37 octets
Le code si 57 octets de long et se qualifie pour le bonus de -20 octets . Essayez-le en ligne!
Merci à @ MartinBüttner d'avoir porté ma réponse Perl sur Retina!
Comment ça fonctionne
la source
([.,?]|!*)
modèle de correspondance de ponctuation pour ma réponse? Je l'ai vu et je ne pouvais pas le voir (et je n'ai certainement pas pu trouver de meilleure solution!). Cela ne va certainement pas battre le vôtre :), mais je ne veux pas plagier, et je ne suis pas totalement sûr de l'étiquette pour emprunter des solutions à des sous-problèmes comme celui-ci.VBA, 193 octets
Pas de séparation, pas de regex, pas de bonus. Avait une version qui a obtenu les deux Bonus mais était BEAUCOUP plus longue.
la source
for i=1 to
enfor i=1To
Perl, 51 octets
Le code source réel contient 70 octets , il doit être exécuté avec
perl -nE
( +1 octet ) et il bénéficie du bonus de -20 octets .la source
Python 2, 155 octets
Exemple
la source
JavaScript, 88 octets
108 octets - 20 octets (capture la ponctuation)
la source
Amen?!.
pour l'entréeAmen?!.
etAmen!
pour l'entréeAmen!!!
.grep et sed,
85838477-20 = 57 octetsla source
Amen?
pour l'entréeall the people said??
. La meilleure solution de contournement que j'ai pu trouver était de remplacer la chaîne parAmenx
.amen.
pour l'entréeamen.
. La résolution de ce problème raccourcira votre réponse: passez simplementgrep -v '^[amen]*$'
àgrep \[AMEN]
.Perl, 103 - 60 = 43 octets
En comptant le shebang comme un, l'entrée provient de stdin. Maintient la ponctuation pour -20 octets et identifie l'hérésie pour -40 .
Exemple d'utilisation
Perl, 70-20 = 50 octets
En comptant le shebang comme un, l'entrée provient de stdin. Maintient la ponctuation pour -20 octets.
Exemple d'utilisation
la source
ha]
. (𝔼𝕊𝕄𝕚𝕟, 66-20 = 46 caractères / 80-20 = 60 octets
Essayez-le ici - Firefox uniquement.
Première fois ici à PPCGSE. J'espère que ce golf est plutôt bon.
EDIT: En fait, je bat CJam (en nombre de caractères), donc c'est plutôt bien!
la source
CJam, 57 octets
Le code est de 97 octets et se qualifie pour les -40 octets bonus de .
Essayez-le en ligne dans l' interpréteur CJam .
la source
JavaScript, 100 octets
la source
x=prompt();
et vous pouvez également utiliseralert(prompt().replace(...).replace(...).match)
JavaScript,
136135 - 40 - 20 = 75 octetsExplication:
Ce code est piloté par une expression régulière en trois parties qui alimente les résultats dans un
replace
rappel . Les pièces sont:all the people said[?: ]
- correspond simplement auall the people said
modèle requis(amen)([.,?]|!*)
- Autorise tout casamen
et la ponctuation (un.,?
ou zéro ou plus!
, ce qui rend l'option de ponctuation) en groupes séparés match - crédit à Dennis pour le modèle de ponctuation.
- correspond à tout autre personnage, ne faisant pas partie des modèles ci-dessus, un à la foisPar conséquent, toute correspondance doit être soit une chaîne destinée à tous, une correspondance Amen avec une ponctuation facultative, soit un seul caractère ne faisant partie d'aucune de ces expressions. Nous utilisons la logique dans le rappel de remplacement pour enregistrer et remplacer les parties appropriées de la chaîne et changer tous les autres caractères en chaîne vide.
la source
Python 2, 191 - 40 = 151 octets
Pas de regex et Bonus 2
la source