Фон
Вам дали задание делать заметки для встречи. Вы начинаете печатать в своем Google Doc, но у вас недостаточно времени, чтобы посмотреть на клавиатуру во время ввода.
К счастью для вас, вы можете печатать, не глядя на клавиатуру. После встречи вы понимаете, что все, что вы ввели, было одной клавишей слева.
Соревнование
Для этого испытания вы будете использовать буквы, цифры и пробел на раскладке клавиатуры QWERTY.
При вводе текста (из любого стандартного метода ввода) выведите результирующий текст, где каждый символ перемещается на клавиатуре слева направо.
Для большинства букв просто посмотрите на букву и переведите ее в букву слева (
c
становитсяx
,t
становитсяr
и т. Д.).Для буквы
q
переведите буквальный символ табуляции (\t
).Для буквы
a
включите заглавные буквы , чтобы заглавная буква остальной части строки была обратной.Для буквы
z
используйте следующую букву в строке.Для пробела перевод не требуется.
Сохраняйте заглавные буквы при переводе и помните о блокировке прописных букв (если включена блокировка прописных букв, убедитесь, что дело обстоит иначе).
Все символы во входной строке будут буквами, цифрами или пробелом. Никакие знаки препинания или другие символы не могут быть включены.
Тестовые случаи
\t
буквальный символ табуляции
Hello world -> Gwkki qieks
Code Golf -> Xisw Fikd
Queried apples -> \tyweuws OOKWA
счет
Самый низкий результат в байтах побеждает. Веселиться!
Azerty
->wERT
z
, используйте следующую заглавную букву в строке -> означает ли это, что мы должны заботиться только о заглавных буквах и не переключаться между цифрами и символами? Каков ожидаемый результат0123456789
,a0123456789
аz0z1z2z3z4z5z6z7z8z9
? (Кроме того, на многих клавиатурах, отличных от QWERTY, «Caps Lock» действительно действует как «Shift Lock». Я считаю, что QWERTY не следует этому шаблону, но его следует указывать для тех из нас, кто не знаком с ним. )Ответы:
JavaScript (V8) , 271 байт
Попробуйте онлайн! Мой первый код JavaScript для гольфа. Это определенно может быть короче, но я думаю, что это хорошее начало.
Он в основном находит каждый символ в
k
строке и заменяет его на предыдущий, затем меняет регистр всего, что находится междуA
илиa
, и удаляет все вхожденияZ
илиz
(так как клавиша Shift сама по себе ничего не делает).Это должна быть нормальная раскладка клавиатуры QWERTY, но дайте мне знать, если нет.
источник
zebras=>wveA
контрольный пример кажется неправильным. Первыйz
должен заставитьe
печатать заглавные буквыw
. От OP: «Для буквыz
, заглавная следующая буква в строке.»Python 3 , 211 байт
Попробуйте онлайн!
Использует строку поиска, в которой обычный символ и его измененная смещение версия сгруппированы вместе. Для каждого символа на входе он получит символ в двух местах слева. Изменяет заглавные буквы, добавляя
1
(или-1
если текущий символ в верхнем регистре) значение поиска, когда активна блокировка XOR caps. На числа не влияет модификатор caps lock.источник
PHP , 227 байт
Попробуйте онлайн!
Я создал строку сопоставления (
~1!2@3#4$5%6^7&8*9(0 qwertyuiopasdfghjklzxcvbnm
), которая для каждой цифры имеет свой режим SHIFT слева, а для каждой буквы слева - буква / ключ.Я зацикливаю вводимые символы и для каждого символа:
a
илиA
, флаг блокировки прописными буквами меняется на обратный (логически нет).z
илиZ
, флаг сдвига установлен в1
.aAzZ
:$t
.1
,$t
печатаются, иначе, если цифра1
,`
печатается, если цифра0
,9
печатаются и в противном случае,digit-1
печатаются.$t
печатается нижний или верхний регистр. Единственным частным случаем здесь является символ табуляции, который печатается как есть.0
в конце.источник
Красный , 218 байт
Попробуйте онлайн!
В настоящее
AaZz
время не влияет на цифры.источник
'A pear' -> ' OWe'
C (gcc) , 276 байтов
Благодаря потолку кошки за -33 байта.
Попробуйте онлайн!
источник
k^=!(l^7)
вместоk=l^7?k:!k