O layout do teclado que as pessoas costumam usar é o layout QWERTY , como mostrado abaixo.
Mas também existem outros layouts de teclado:
DVORAK
COLEMAK
Sua tarefa
Seu código terá duas entradas: o nome do layout do teclado e uma string para transcrever. Seu objetivo é converter sua entrada QWERTY como se você estivesse digitando com o layout do teclado fornecido como primeiro parâmetro.
Regras
O formato de entrada é gratuito, você pode usar seqüências de caracteres, matrizes etc. Além disso, você pode usar três valores distintos para representar os layouts para reduzir sua contagem de bytes, mas cada um deles deve ser representável em 10 bytes ou menos.
Você só precisa manipular as teclas com fundo branco. Especificamente, você deve transpor os caracteres ASCII imprimíveis do alfabeto QWERTY para um dos outros alfabetos:
QWERTY: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
DVORAK: !_#$%&-()*}w[vz0123456789SsW]VZ@AXJE>UIDCHTNMBRL"POYGK<QF:/\=^{`axje.uidchtnmbrl'poygk,qf;?|+~
COLEMAK: !"#$%&'()*+,-./0123456789Oo<=>?@ABCSFTDHUNEIMKY:QPRGLVWXJZ[\]^_`abcsftdhuneimky;qprglvwxjz{|}~
WORKMAN: !"#$%&'()*+,-./0123456789Ii<=>?@AVMHRTGYUNEOLKP:QWSBFCDXJZ[\]^_`avmhrtgyuneolkp;qwsbfcdxjz{|}~
(Observação: isso foi transcrito à mão por @ETHproductions; portanto, se você encontrar algum erro, aponte-o!)
Exemplo
DVORAK zZxX
como entrada dará como saída ;:qQ
Isso é código-golfe, então a resposta mais curta em bytes vence!
!_#$%&-()*}w[vz0123456789SsW]VZ@AXJE>UIDCHTNMBRL"POYGK<QF:/\=^{`axje.uidchtnmbrl'poygk,qf;?|+~
como entrada do teclado Dvorak? Isso banalizaria o desafio ... Que tal introduzir uma restrição de comprimento ou algo semelhante?
!_#$%&-()*}w[vz0123456789SsW]VZ@AXJE>UIDCHTNMBRL"POYGK<QF:/\=^{`axje.uidchtnmbrl'poygk,qf;?|+~
como entrada