Diberikan String dan Array sebagai input, tugas Anda adalah menampilkan teks yang akan dicetak oleh String input saat diketikkan pada Keypad Seluler biasa. Dalam Keypad Seluler, huruf diketik dengan menekan tombol n kali, di mana n adalah posisi di mana huruf berada pada label tombol. Jadi, 22
sebaiknya output b
.
Aturan
Array Pembantu akan berisi Peta Karakter (
[" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
). Ini akan diberikan untuk menghemat beberapa byte.The
#
simbol akan beralih kasus. Kasus awal akan lebih rendah. Jadi2#3
seharusnya outputaD
.The
0
akan menambahkan spasi. Jadi,202
sebaiknya outputa a
.Akan ada spasi (
) di String input untuk memulai huruf baru yang ada di tombol angka yang sama. Untuk Contoh mengetik
aa
, String input akan2 2
.Dijamin bahwa String input akan selalu menjadi Kode KeyPad yang valid.
Memasukkan
Anda dapat mengambil input dengan cara apa pun yang didukung bahasa Anda.
Keluaran
Anda dapat menampilkan hasilnya dengan cara apa pun yang Anda inginkan. Fungsinya return
juga diperbolehkan.
Uji Kasus
#4440555#666888330#999#66688111 -> "I Love You!"
#6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!"
#44#27 79990#66#3390#999#332777111 -> "Happy New Year!"
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
year
kasus tes terakhir salah.##
ruang ganda perlu ditangani?Jawaban:
Pyth - 31 byte
Hal kunci yang baru membuat saya terlalu mahal.
Test Suite .
sumber
JavaScript,
10599 bytesumber
l
) dan kemudian menggunakanc?l:l.toUpperCase()
.Perl 6 ,
11997 bytesolusi berbasis peta 119 byte
Cobalah
solusi berbasis substitusi 97 byte
Cobalah
Diperluas:
sumber
JavaScript ES6 - 124 byte
Golf:
Tidak Disatukan:
sumber
JavaScript, 301 byte
Saya tahu ini sangat panjang, tetapi ini adalah yang terbaik yang saya bisa.
sumber
V , 60 byte
(Ada yang tidak patut dicetak
½<Ctrl+r>a
)Cobalah online!
Menjelaskan
sumber