Mi problema
En mi lugar actual de empleo, solo (solo con dos manos porque no me faltan extremidades) mantengo aproximadamente 700 computadoras portátiles. Debido a la naturaleza y frecuencia de su uso, a menudo encuentro que son devueltos con un poco de daño. Para este problema, mi principal preocupación es cuando una computadora portátil se devuelve con un teclado roto o apagado. Cuando el reparador de hardware repara estos teclados rotos, se hace necesario probarlos. La prueba implica el uso de cada ... y ... cada ... tecla ... individual. ¿Qué arrastre, verdad? El problema es que a veces pierdo el rastro de si escribí una tecla o no.
¿Una solución?
Escriba un programa / script que:
- Toma la entrada del usuario
- Tras el envío (de la forma que considere adecuada), determina si se presionó cada tecla.
- Emite sí o no o cualquier forma de indicar que o bien tuve éxito al presionar todas las teclas o no. (Indique en su respuesta las dos salidas posibles si no es algo obvio).
Suposiciones
- ¿Mayúsculas, minúsculas, ambas? De cualquier forma que consideres adecuada. Siempre que sea [AZ], [az] o [A-Za-z]. Lo mismo ocurre con los números y otros símbolos. (Entonces, si =se escribió,+ no importa). Su elección si desea incluir caracteres desplazados o no.
- No necesita preocuparse por pestañas o espacios
- No necesita teclas de función, CTRL, ALT, Esc ni ninguna otra tecla que no muestre algo en la pantalla
- Esto supone un teclado EN-US y las computadoras portátiles no incluyen un teclado numérico.
- Sistema operativo independiente, cualquier idioma que prefiera
- No importa si la tecla se ha presionado varias veces (para cuando el probador simplemente se vuelve flojo y comienza a romper el botón como si fuera Mortal Kombat)
Aquí hay un conjunto de entrada potencial que devolvería verdadero (o sí, o "¡Lo hiciste!")
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
El ganador está determinado por el menor número de caracteres.
Respuestas:
GolfScript, 6 bytes
Si todos los caracteres ASCII con códigos entre 33 y 127 están presentes, imprime 1. De lo contrario, imprime 0.
Este enfoque fallará si la entrada contiene otros caracteres (incluida una nueva línea final), lo que ha sido permitido por el OP y también es cierto para la solución GolfScript existente.
Uso
Cómo funciona
fuente
GolfScript, 11
Imprimir ASCII no es tan interesante ...
Rubí, 68
Con bandera
-rset
para 4 personajes.y
Pitón 3, 76
fuente
JavaScript - 62
70Y un poco más corto:
fuente
CJam - 9
Comprueba también los caracteres "desplazados" (incluidas las letras mayúsculas).
Pruébalo en http://cjam.aditsu.net/
Nota: hay un carácter invisible (con código 127) después del apóstrofe.
fuente
PHP
$_GET['i']
es la entradafuente
$_GET
para guardar 1 char si es aceptable.!==false
para guardar 8 caracteres, luego las llaves para 4 más.register_globals
hace que este"é$i"
.die(NO)
También es posible.Python 72:
fuente
Haskell, 41 (dos soluciones)
o (estilo sin puntos)
Necesita ingresar al menos estos caracteres:
en cualquier orden, cualquier cantidad de veces. Se permiten caracteres adicionales. Ejecutar en un intérprete. Debe presionar Enter cuando haya terminado, pero si presiona Enter antes de terminar, puede seguir ingresando caracteres y presionar Enter nuevamente. Se imprimirá
True
si golpeó a cada personaje, de lo contrario no imprimirá nada.fuente
Perl, 70 caracteres.
Uso:
Imprime 1 si están presentes todas las pulsaciones de teclas, de lo contrario no imprime nada.
fuente
C, 97 caracteres
Necesita llamar al programa con un argumento que contenga al menos las letras:
y obtenga la respuesta 1 (verdadero). El juego de caracteres se puede cambiar cambiando el valor de inicialización de a.
fuente