Tantangan Golf Code
Saya memiliki isdue, jari saya gemuk dan saya freqintly memiliki isdue of ty [ing satu keystrpke ke kanan di kryboard saya.
Aku khawatir masalah ini semakin buruk dan semakin buruk seiring berjalannya waktu.
Namun, setiap keystrpke saya membuat wil; jadilah shiftrd pne di sebelah kanan!
Befpre maka saya ingin program (atau functipn) untuk secara otomatis menggeser setiap keystrpke kembali ke yang kiri.
Saya akan pastikan untuk mengambil buku saya ketik sisa chal; enge agar tidak menyebabkan kebingungan anu!
Objektif:
Tulis program atau fungsi yang mengambil input dari salah satu tombol hijau berikut pada keyboard QWERTY standar dan mengembalikan karakter tombol yang ada di sebelah kiri itu.
Kondisi:
• Anda dapat berasumsi bahwa orang yang menjalankan program ini menggunakan keyboard QWERTY seperti yang ditunjukkan pada gambar di atas.
• Input dan Output keduanya tidak peka huruf besar kecil, Anda dapat menggunakan case apa saja (atau kombinasi kombinasi huruf besar-kecil) untuk tantangan ini dan Anda juga dapat mengasumsikan semua input dalam satu kasus jika diinginkan.
• Jika bahasa Anda tidak memiliki cara yang memungkinkan pengguna untuk memasukkan kunci kembali karena alasan tertentu, Anda dapat mengabaikan satu penekanan tombol untuk ini
• Tantangan ini hanya untuk nilai-nilai standar tombol, misalnya jika 4
tombol ditekan Anda dapat menganggap itu akan selalu 4
dan tidak pernah$
• Anda dapat mengasumsikan hanya tombol hijau yang akan ditekan.
Contoh Input
-> Output
:
S
-> a
4
-> 3
=
-> -
[
->p
Ini kode-golf , jadi program dengan bytecount terpendek menang!
]
->[
?Jawaban:
Ruby,
76 7169 bytesumber
Perl 6 ,
878369 byteCobalah online!
Ingin tahu apakah ada cara untuk menyandikan string hard-coded ke sesuatu yang lebih pendek ...
(Mencuri ide regex GB untuk -14 byte.)
sumber
$"
rentang dapat menghemat beberapa karakterJelly ,
3433 byteCobalah online!
Bagaimana itu bekerja
sumber
Øq
bagus! Saya suka ini, terima kasih!Python 3,
8578 byte:sumber
lambda x,k="1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?":k[k.find(x)-1]
untuk mengurangi beberapa bytePython , 76 byte
Cobalah online!
Membuat kamus yang mengambil setiap tombol ke kiri dengan zip string karakter dengan versi bergesernya. Intinya adalah fungsinya, yang teratas adalah definisi.
Menggunakan
translate
untuk membuat pemetaan memberi solusi yang lebih panjang. Cobalah online!sumber
Retina ,
5351 byteCobalah online!
Transliterasi sederhana menggeser setiap posisi karakter 1 ke belakang. Semuanya dari
1
ke/
adalah set karakter asli, sedangkan bagian berikut adalah set baru, menggunakano
untuk menunjukkan set Lainnya.H
danL
merupakan kelas karakter khusus untuk transliterasi dalam retina (masing-masing memetakan ke angka Hex dan Huruf besar), tetapi untungnya mereka muncul pada keyboard di dalam urutan yang diurutkan secara alfabet (FGH
danJKL
), sehingga kita dapat menghindari melarikan diri dengan meletakkannya dalam rentang dan mendapatkan seperti itu 2 byte.sumber
C ++, 109 byte
Cobalah online!
sumber
TI-Basic, 70 byte
Saya ragu bahwa itu bisa lebih pendek dari ini ...
PS Dua-byte token
Str1
,`
,\
,sub(
, daninString(
.sumber
V ,
575451 byte3 byte disimpan berkat @ nmjcman101 untuk menggunakan
hxVp
daripada apa yang saya miliki untuk keyboard multilineCobalah online!
<esc>
adalah0x1b
dan<c-r>
sekarang0x12
Catatan: ini tidak mendukung tombol enter
Berisi unsintables, jadi inilah hexdump
Penjelasan
Sebagian besar program menghasilkan keyboard.
i
memasuki mode penyisipan dan setiap karakter yang mengikutinya dicetak ke buffer. Tapi ada kekhasan kecil di sini,¬19
menyisipkan karakter antara 1 dan 9.Program keluar dari mode penyisipan di jendela
<esc>
. Dan kemudian di sini/<c-r>a
ia mencari argumen di buffer. Ini membawa kursor di atas karakter yang ditemukannya.sumber
hylHVGp
Anda tidak dapat melakukan apa yang dilakukan @DJMcMayhem di pertanyaan sepeda motorhxVp
. Saya tidak yakin mengapa Anda meletakkannyaG
di sana, bukankah semuanya satu baris? JugadhVp
akan berhasil.G
sejak saat keyboard digunakan untuk multiline. Terima kasih!PowerShell, 82 byte
Tombol Enter didukung, tetapi tidak dapat diuji dengan
Read-Host
karena tindakan menekan enter tanpa nilai tidak mengembalikan apa pun di PowerShell.sumber
Japt ,
5642 bytePenjelasan
Cobalah online!
sumber
Java 8, 99 byte
Penjelasan:
Coba di sini.
sumber
c->"`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./".replaceAll("(?s).*(.)"+c+".*","$1")
.JavaScript (ES6), 74 byte
Karena
/
tidak ada dalam string saya,indexOf
kembali-1
, yang ketika bertambah menyebabkan.
menjadi output. 93 byte untuk memproses string:sumber
GNU sed , 72 +1 (r flag) = 73 byte
Kunci kembali tidak dapat diuji, karena desain membagi input menggunakan
\n
sebagai pembatas dan kemudian menjalankan skrip sebanyak yang ada garis.Uji coba: pasangan input-output kontinu (saat selesai tekan Ctrl + D atau Ctrl + C)
sumber
05AB1E , 50 byte
Cobalah online!
Penjelasan:
sumber
Pyth - 56 byte
Test Suite .
sumber