Meu problema
No meu local de trabalho atual, eu, sozinho (ok em parte porque não tenho membros), mantenho aproximadamente 700 laptops. Devido à natureza e frequência de seu uso, muitas vezes acho que eles são devolvidos com alguns danos. Para esse problema, minha principal preocupação é quando um laptop é retornado com um teclado quebrado ou desativado. Quando o reparador de hardware corrige esses teclados quebrados, torna-se necessário testá-los. O teste envolve o uso de cada ... e ... cada ... única ... chave. Que arrasto certo? O problema é que, às vezes, eu perco o controle se digito uma chave ou não.
Uma solução?
Escreva um programa / script que:
- Recebe entrada do usuário
- Após o envio (da maneira que você julgar adequada), determina se cada tecla foi pressionada.
- Emite sim ou não ou alguma maneira de indicar que eu consegui pressionar todas as teclas ou não. (Indique na sua resposta as duas saídas possíveis, se não for algo óbvio).
Premissas:
- Maiúsculas, minúsculas, ambas? Qualquer que seja a maneira que você considere adequada. Contanto que seja [AZ], [az] ou [A-Za-z]. O mesmo acontece com números e outros símbolos. (Portanto, se =foi digitado, +não importa). Sua escolha se você deseja incluir caracteres deslocados ou não.
- Você não precisa se preocupar com guias ou espaços
- Não há necessidade de teclas de função, CTRL, ALT, Esc ou qualquer outra tecla que não produza algo na tela
- Isso pressupõe um teclado EN-US e os laptops não incluem um teclado numérico.
- SO independente do idioma que você preferir
- Não importa se a tecla foi pressionada várias vezes (quando o testador fica preguiçoso e começa a pressionar o botão como se fosse Mortal Kombat)
Aqui está um conjunto de entradas em potencial que retornaria verdadeiro (ou sim, ou "Você conseguiu!")
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
O vencedor é determinado pelo menor número de caracteres.
Respostas:
GolfScript, 6 bytes
Se todos os caracteres ASCII com códigos entre 33 e 127 estiverem presentes, ele imprimirá 1. Caso contrário, ele imprimirá 0.
Essa abordagem falhará se a entrada contiver outros caracteres (incluindo uma nova linha final), permitidos pelo OP e também para a solução GolfScript existente.
Uso
Como funciona
fonte
GolfScript, 11
ASCII imprimível não é tão interessante…
Ruby, 68
Com bandeira
-rset
para 4 caracteres.e
Python 3, 76
fonte
JavaScript - 62
70E um pouco mais curto:
fonte
CJam - 9
Ele verifica também os caracteres "deslocados" (incluindo letras maiúsculas).
Experimente em http://cjam.aditsu.net/
Nota: existe um caractere invisível (com o código 127) após o apóstrofo.
fonte
PHP
$_GET['i']
é a entradafonte
$_GET
para salvar 1 caractere se for aceitável.!==false
para salvar 8 caracteres e, em seguida, os suportes para mais 4.register_globals
faz isso"é$i"
.die(NO)
também é possível.Python 72:
fonte
Haskell, 41 (duas soluções)
ou (estilo sem ponto)
É necessário inserir pelo menos esses caracteres:
em qualquer ordem, qualquer número de vezes. Caracteres extras são permitidos. Execute em um intérprete. É necessário pressionar Enter quando terminar, mas se você pressionar Enter antes de terminar, poderá continuar digitando os caracteres e pressione Enter novamente. Será impresso
True
se você acertar todos os caracteres, caso contrário, não imprimirá nada.fonte
Perl, 70 caracteres
Uso:
Imprime 1 se todas as teclas estiverem presentes, caso contrário, não imprime nada.
fonte
C, 97 caracteres
É necessário chamar o programa com argumento que contenha pelo menos as letras:
e obtenha a resposta 1 (verdadeira). O conjunto de caracteres pode ser alterado alterando o valor de inicialização de a.
fonte