Objetivo Dada una entrada de texto que no contiene caracteres [
o ]
, realice las siguientes acciones:
- Para cada instancia
Amen
con al menos una letra mayúscula (por lo que todas las instancias deAmen
exclusiónamen
), produzca lo mismoAmen
(retener mayúsculas) - Para cada instancia de
/all the people said[?: ]/i
(que es una Expresión regular), también salidaAmen
(cualquier caso está bien).
Después de cada salida, puede elegir cualquier separador constante , por ejemplo, una nueva línea, espacio o nada.
Este es un código de golf , por lo que gana el programa más corto en bytes.
Ejemplo 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
Prima
- -20 bytes si se puede "agarrar" la puntuacion que sigue el
Amen
, es decir,Amen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
, yAMEN!!!! => AMEN!!!!
.!
es el único personaje que se conserva varias veces..?!,
son los únicos personajes que se conservan así. - -40 bytes si, hay una instancia de
amen
salida, enHeresy! at index [i]
lugar de nada, donde[i]
está el índice de la palabra ofensiva, es deciramen
.
Bonus IOs
Entrada y salida es de la forma input => output
. (El separador aquí es un espacio).
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!
Tablas de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta se muestre, comience con un título, usando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Si desea incluir varios números en su encabezado (por ejemplo, porque su puntaje es la suma de dos archivos o desea enumerar las penalizaciones de la bandera del intérprete por separado), asegúrese de que el puntaje real sea el último número en el encabezado:
# Perl, 43 + 2 (-p flag) = 45 bytes
También puede hacer que el nombre del idioma sea un enlace que luego aparecerá en el fragmento de la tabla de clasificación:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
fuente
amen
s tienen que estar en orden?a
enamen
. Por ejemplo,G amen => 2
si su idioma está indexado a cero; 3 si está un índice.AMEN!!!! => AMEN!!!!
y aunand a final Amen... => Amen.
?Respuestas:
Retina , 37 bytes
El código tiene 57 bytes de longitud y califica para la bonificación de -20 bytes . Pruébalo en línea!
¡Gracias a @ MartinBüttner por portar mi respuesta de Perl a Retina!
Cómo funciona
fuente
([.,?]|!*)
patrón de puntuación para mi respuesta? Lo vi y no pude verlo (¡y ciertamente no pude encontrar una mejor solución!). Ciertamente no va a vencer a los tuyos :), pero no quiero plagiar, y no estoy totalmente seguro de la etiqueta para tomar prestadas soluciones a subproblemas como este.VBA, 193 bytes
Sin separación, sin expresión regular, sin bonificación. Tenía una versión que obtuvo ambos Bonus pero fue MUCHO más larga.
fuente
for i=1 to
afor i=1To
Perl, 51 bytes
El código fuente real contiene 70 bytes , debe ejecutarse con
perl -nE
( +1 byte ) y califica para el bono de -20 bytes .fuente
Python 2, 155 bytes
Ejemplo
fuente
JavaScript, 88 bytes
108 bytes - 20 bytes (captura puntuación)
fuente
Amen?!.
para entradaAmen?!.
yAmen!
para entradaAmen!!!
.grep y sed,
85838477 - 20 = 57 bytesfuente
Amen?
para la entradaall the people said??
. La mejor solución que pude encontrar fue reemplazar la cadena conAmenx
.amen.
para la entradaamen.
. Arreglar esto acortará su respuesta: simplemente cambiegrep -v '^[amen]*$'
agrep \[AMEN]
.Perl, 103-60 = 43 bytes
Contando el shebang como uno, la entrada se toma de stdin. Mantiene la puntuación para -20 bytes e identifica la herejía para -40 .
Uso de muestra
Perl, 70-20 = 50 bytes
Contando el shebang como uno, la entrada se toma de stdin. Mantiene la puntuación para -20 bytes.
Uso de muestra
fuente
ha]
. (No importa, acaba de ver el comentario de la OP que la entrada no puede contener corchetes ... esta pregunta se ha transformado tantas veces que no puedo llevar la cuenta.)𝔼𝕊𝕄𝕚𝕟, 66-20 = 46 caracteres / 80-20 = 60 bytes
Pruébalo aquí , solo Firefox.
Primera vez aquí en PPCGSE. Espero que este golf sea bastante bueno.
EDITAR: En realidad, estoy superando a CJam (en el recuento de char), ¡así que eso es bastante bueno!
fuente
CJam, 57 bytes
El código tiene 97 bytes de longitud y califica para el bono de -40 bytes .
Pruébelo en línea en el intérprete de CJam .
fuente
JavaScript, 100 bytes
fuente
x=prompt();
y puedes usar tambiénalert(prompt().replace(...).replace(...).match)
JavaScript,
136135- 40 - 20 = 75 bytesExplicación:
Este código está impulsado por una expresión regular de tres partes que alimenta los resultados en una
replace
devolución de llamada . Las partes son:all the people said[?: ]
- simplemente coincide con elall the people said
patrón requerido(amen)([.,?]|!*)
- coincide con cualquier casoamen
y puntuación (uno.,?
o cero o más!
, lo que hace que la puntuación sea opcional) en grupos de coincidencia separados - crédito a Dennis por el patrón de puntuación.
- coincide con cualquier otro personaje, que no sea parte de los patrones anteriores, uno a la vezPor lo tanto, cualquier coincidencia debe ser una cadena para todas las personas, una coincidencia de Amén con puntuación opcional o un solo carácter que no forme parte de ninguna de esas frases. Usamos la lógica en la devolución de llamada de reemplazo para guardar y reemplazar las partes apropiadas de la cadena, y cambiar cada otro carácter a la cadena vacía.
fuente
Python 2, 191 - 40 = 151 bytes
Sin expresiones regulares y Bonus 2
fuente