Este desafío está inspirado en el meme Men of Culture .
El meme implica eliminar partes del subtítulo original,
Ah, veo que también eres un hombre de cultura.
para que parezca que el personaje dice algo más.
Su desafío es escribir un programa que, dada una entrada, muestre cómo se puede borrar la oración original para lograr la cadena de entrada.
Reglas:
- Use un
-
personaje para representar un personaje en blanco. - No debe agregar letras adicionales para lograr la cadena de entrada
- Puede tratar las comparaciones de cadenas como mayúsculas y minúsculas
- Puede ignorar los espacios en blanco en las comparaciones de cadenas
- Si no es posible la sustitución, genera un valor falso.
- También puede sustituir el espacio en blanco redundante con un
-
, aunque no es obligatorio. - Cuando hay varias soluciones posibles, puede generar cualquiera de ellas.
Casos de prueba:
BASIC:
Ah, I see you're a well.
> Ah, I see you're a --- -- ------- -- well.
Ah, I see well.
> Ah, I see ------ - --- -- ------- -- well.
Caso de borde 1:
What did you just say about me, you little
> false
Edge case 2 (editado):
*no input*
> --- - --- ------ - --- -- ------- -- -----
Intermedio:
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.
Más fuerte:
tea.
> --- - --- ------ - --- -- ---t--e a- ----.
eeeee
> --- - -ee -----e - --- -- ------e -- -e---
TL; DR: Dada una cadena de entrada, genera una cadena que representa cómo se debe modificar la cadena original para que se ajuste a la cadena de entrada, usando un "-" para representar un carácter en blanco. Si no es posible una sustitución, genere un valor falso.
Código de golf, por lo que gana el código más corto en bytes.
Editar: aclaraciones
Ignorar espacios en blanco en las comparaciones de cadenas significa que puede eliminar espacios en blanco antes de comparar cadenas. Por ejemplo, las entradas
Ah, a manual
yAh , a manual
se tratan como iguales. Se, ' .
debe preservar otra puntuación . De manera similar para la salida,Ah, a manual
es igual aAh, amanual
.el espacio en blanco redundante sustituto se refiere a los espacios presentes en el título original. No es necesario reemplazarlos con "-", pero si reemplaza redes obtendrá más puntos, entonces continúe.
"Ah,<5 SPACES HERE>a manual."
rendir?Respuestas:
> <> , 94 bytes
Pruébalo en línea!
Distingue entre mayúsculas y minúsculas, no ignora los espacios en blanco o la puntuación y genera una cadena vacía si la entrada no es válida. Si desea probar otras cadenas, puede modificar la primera línea después de la
"v
, siempre que no contenga un"
byte nulo.fuente
Retina 0.8.2 , 117 bytes
Pruébalo en línea! Podría ahorrar 1 byte al requerir mayúsculas y minúsculas. Podría ahorrar 3 bytes devolviendo una
--, - --- ---'-- - --- -- ------- -- ----.
entrada vacía. Explicación:Anteponga el texto deseado a la entrada.
Mueva tantos caracteres del texto deseado al resultado como sea posible. Si el carácter es una letra, también debe coincidir con la siguiente letra en la entrada, que luego se elimina.
Si no hay una letra coincidente en la entrada, cámbiela por a
-
e intente nuevamente.Si aún quedan letras en la entrada, elimine todo; de lo contrario, elimine el resto de la entrada.
fuente
Gelatina ,
58554845 bytesPruébalo en línea!
Versión más legible:
Desglose de compresión de cadena:
fuente
Python 2 ,
126114bytesPruébalo en línea!
Python 2 ,
108106 bytesLa entrada es una lista de caracteres.
Pruébalo en línea!
fuente
(i=='')
No podría ser(i<' ')
(usando una pestaña, el carácter imprimible más bajo)?JavaScript (Node.js) ,
122120 bytesPruébalo en línea!
Explicacion:
Se puede reducir aún más, pero también reemplaza los espacios en blanco con '-'. Si esto es aceptable, entonces
JavaScript (Node.js) , 112 bytes
Pruébalo en línea!
Reducido aún más, solo reemplaza los espacios en blanco que están después de la cadena dada con '-'.
JavaScript (Node.js) , 105 bytes
Pruébalo en línea!
fuente
What did you just say about me, you little
What did you just say about me, you little
caso de prueba. Su programa produce--- - --- ------ - --- -- ------- -- w----
como salida, que no es lo que requiere la especificación de desafío.JavaScript (Node.js) , 135 bytes
Pruébalo en línea!
Si "puede" significa hacer o no hacer está bien, entonces
JavaScript (Node.js) , 106 bytes
Pruébalo en línea!
fuente
Brain-Flak ,
764600 bytesPruébalo en línea!
Grandes mejoras gracias a Jo King , especialmente en la construcción de cuerdas, pero también algunos ajustes lógicos en el cuerpo principal. Explicación de él
Es sensible a mayúsculas y minúsculas (por lo tanto, "Ah, veo que eres Orwell" no coincide, pero "Ah, veo que eres Orwell" sí), no se ignora el espacio en blanco en la entrada , y el espacio en blanco no coincidente en la cadena original es convertido a
-
. Según tengo entendido, todas esas son opciones válidas.Explicación:
fuente
Haskell ,
182174172171170169 bytesPruébalo en línea!
Sin golf:
fuente
Prólogo (SWI) , 109 bytes
Pruébalo en línea!
Mayúsculas y minúsculas y espacios en blanco. El
-/2
predicado es el predicado principal con su primer argumento siendo la cadena de entrada y el segundo argumento siendo la cadena de salida.fuente
JavaScript (Node.js), 103 bytes
Pruébalo en línea!
Distingue mayúsculas y minúsculas.
fuente
Pyth , SBCS de 78 bytes
Conjunto de
pruebas Caracteres no imprimibles presentes en el código, vea el enlace para la versión correcta.
Mayúsculas y minúsculas, no ignora los espacios en blanco.
fuente
Perl 5
-F
, 192 bytesPruébalo en línea!
fuente