Esta pregunta está escrita porque "Thing Explainer" es divertido de leer y me dio una idea.
Escriba "cosas que hacen que la computadora haga cosas" que lee / toma un conjunto de letras, números y cosas como esta "#%|?
y devuelve True / 1
si todas las palabras son parte de este conjunto .
Si todas las palabras no son parte de ese conjunto, devuelva las palabras que no fueron parte de él.
Este sitio web puede considerarse correcto en todos los casos. Las reglas están escritas para seguir las especificaciones de ese sitio.
Ejemplos:
Verdad :
El código debe devolver un valor verdadero si todo el texto sobre la primera línea horizontal se pega como entrada.
Las siguientes líneas deben devolver un valor verdadero (la entrada está separada por ###
)
This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true
Falsey- :
En los siguientes ejemplos, la entrada y la salida están separadas por ***
. Los diferentes casos de prueba están separados por ###
.
This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false
Reglas más detalladas:
- Puede usar esto para probar su código.
- Las no letras se interpretan como espacios por el código, a excepción de palabras como
'wasn't'
. Las palabras con apóstrofos que regresantrue
se incluyen en la lista- Por ejemplo:
foo123bar
debería regresarfoo
ybar
, dado que no son parte de la lista, y123
pueden interpretarse como espacios
- Por ejemplo:
- La entrada solo contendrá puntos de código ASCII imprimibles [10, 32-126].
- Las palabras pueden contener letras mayúsculas y minúsculas. Ver segundo caso de prueba.
- La lista de palabras
- debe tomarse como entrada (STDIN, argumento de función o equivalente)
- se puede modificar (las palabras se pueden separar por nueva línea, coma, etc., y puede ordenar la lista)
- Tenga en cuenta que no puede usar esta lista (no es idéntica)
- La salida puede estar en cualquier formato que desee
- La salida puede ser mayúscula, inferior o mixta (opcional)
- No habrá símbolos en la salida.
Para el registro, Jonathan Allan encontró un extraño caso de esquina: la implementación en XKCD en realidad ignorará cualquier letra después de un apóstrofe hasta el siguiente no [AZ] [az] ['], por ejemplo find's found
, y find'qazxswedc found'
ambos no devuelven nada, mientras que find'qazx.swedc found
devuelve swedc
.
Puede elegir si no desea devolver nada find'qazxswedc found'
o volver qazxswedc
. Volviendo qazx, swedc
a find'qazx.swedc
también está bien.
fuente
Boolean
oArray<String>
, ¿sería permisible devolver una matriz / lista vacía?1
. No se permite una salida vacía.find'qazxswedc
entrada. ¿Estamos o no debemos dividirnos en apóstrofes? Por ejemplo,isn't
devuelvetrue
(está en la lista), peroisn
devuelveisn
, ya que eso no está en la lista. A partir de esa lógica, fui con "no dividir en apóstrofes" y asífind'qazxswedc found
regresafind'qazxswedc
.Respuestas:
PowerShell v3 +,
10592 bytesToma palabras simples como
$a
y palabras similares$b
. Hace ayudante$x
. Tome cada palabra$b
y deshágase de cualquier letra no mala, luego verifique cada una|{...}
. Si esa palabra no está$a
, entonces la agregamos a$x
. Al final, elegimos$x
o1
no$x
. Eso se envía, ya seawords
o1
.Algunas palabras para probar
fuente
Python, 93 bytes
Todos los casos de prueba están en ideone
El preprocesamiento de la lista es dividirlo
|
y ponerlo en unset
(lo que imagino que está bien si se permite la clasificación previa). Ingrese palabras comow
y el conjunto comos
.Si eso no está permitido, esto se convierte en 98 bytes con el
not in s
devenirnot in set(s)
.Podríamos preprocesarlo para que también tenga todas las permutaciones de caracteres en mayúsculas y minúsculas y guardar 8 bytes, pero creo que eso podría estar yendo demasiado lejos (sería un conjunto enorme).
fuente