Моя проблема
На моем нынешнем месте работы я в одиночку (хорошо, двуручный, потому что у меня нет конечностей) обслуживаю около 700 ноутбуков. Из-за характера и частоты их использования, я часто обнаруживаю, что они возвращаются с небольшим ущербом. В связи с этой проблемой меня больше всего беспокоит возвращение ноутбука со сломанной или неисправной клавиатурой. Когда ремонтник оборудования исправляет эти сломанные клавиатуры, возникает необходимость их тестировать. Тест включает использование каждого ... и ... каждого ... отдельного ... ключа. Какое право тянуть? Проблема в том, что иногда я теряю счет, набрал ли я ключ или нет.
Решение?
Напишите программу / скрипт, который:
- Принимает пользовательский ввод
- После отправки (любым способом, который вы считаете нужным) определяет, была ли нажата каждая клавиша.
- Выводит да или нет или каким-либо образом указывать, что я успешно нажал все клавиши или нет. (Укажите в своем ответе два возможных выхода, если это не очевидно).
Предположения:
- Прописные, строчные, оба? Какой бы способ вы ни сочли нужным. Пока это [AZ], [az] или [A-Za-z]. То же самое касается чисел и других символов. (Так что, если =был введен, +не имеет значения). Ваш выбор, если вы хотите включить сдвинутые символы или нет.
- Вам не нужно беспокоиться о вкладках или пробелах
- Нет необходимости в функциональных клавишах, CTRL, ALT, Esc или любых других клавишах, которые ничего не выводят на экран
- Это предполагает, что клавиатура EN-US и ноутбуки не имеют цифровой клавиатуры.
- ОС агностик, какой язык вы предпочитаете
- Неважно, если клавиша была нажата несколько раз (например, когда тестер просто ленится и начинает нажимать кнопку, как будто это Mortal Kombat)
Вот потенциальный набор входных данных, который вернул бы true (или да, или «Вы сделали это!»)
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./
Победитель определяется по наименьшему количеству символов.
Ответы:
GolfScript, 6 байт
Если присутствуют все символы ASCII с кодами от 33 до 127, выводится 1. В противном случае выводится 0.
Этот подход потерпит неудачу, если ввод содержит другие символы (включая заключительный перевод строки), что было разрешено OP и также верно для существующего решения GolfScript.
использование
Как это устроено
источник
GolfScript, 11
Печатная ASCII не так уж интересна ...
Руби, 68
С флагом
-rset
на 4 персонажа.и
Питон 3, 76
источник
JavaScript - 62
70И немного короче:
источник
CJam - 9
Он также проверяет наличие «сдвинутых» символов (включая заглавные буквы).
Попробуйте это на http://cjam.aditsu.net/
Примечание: после апострофа есть невидимый символ (с кодом 127).
источник
PHP
$_GET['i']
это входисточник
$_GET
чтобы сохранить 1 символ, если это приемлемо.!==false
чтобы сохранить 8 символов, затем фигурные скобки для еще 4.register_globals
делает это"é$i"
.die(NO)
тоже возможно.Python 72:
источник
Хаскелл, 41 (два решения)
или (бессмысленный стиль)
Необходимо ввести хотя бы эти символы:
в любом порядке, любое количество раз. Допускаются дополнительные символы. Беги в переводчике. Должен нажать Enter, когда закончите, но если вы нажмете Enter до того, как закончите, вы можете продолжать вводить символы и снова нажать Enter. Напечатает,
True
если вы нажали на каждого персонажа, иначе ничего не напечатает.источник
Perl, 70 символов
Использование:
Печатает 1, если присутствуют все нажатия клавиш, иначе ничего не печатает.
источник
C, 97 знаков
Нужно вызвать программу с аргументом, содержащим как минимум буквы:
и получите ответ 1 (правда). Кодировка может быть изменена путем изменения значения инициализации a.
источник