Bagian yang sederhana: Diberikan string input yang hanya berisi karakter ASCII yang dapat dicetak (spasi - tilde), hitung jumlah kemunculan setiap karakter dan kembalikan hasilnya pada format yang sesuai. Hasil untuk string a%hda7a
harus sesuatu seperti: a:3, %:1, h:1, 7:1, d:1
. Penyortiran tidak perlu, pembatas dan format adalah opsional tetapi harus mudah dipahami angka mana yang sesuai dengan karakter mana. Anda tidak boleh memasukkan karakter yang tidak ada dalam string input ( a:3, b:0, c:0, d:1, ...
tidak OK).
Tantangan nyata:
Ubah setiap karakter dalam kode Anda menjadi angka biner 8-bit (atau 16-bit jika Anda menggunakan UTF-16 atau yang serupa), dan sebutkan setiap karakter mulai dari 0
.
Untuk setiap karakter ( i
adalah pencacah), yang i%7
-bit 1 harus menjadi 1
. Bit diberi nomor dari kanan. Semua bit lain bisa menjadi apa pun yang Anda inginkan.
Mari kita gunakan kode berikut sebagai contoh:
[f]-xif)#f
Mengubah ini ke biner kita mendapatkan array di bawah ini. Angka pertama (mewakili [
memiliki 1
di posisi ke-0, sehingga yang satu itu OK. Angka kedua (mewakili f
memiliki 1
di posisi ke-1, sehingga yang itu juga OK. Lanjutkan seperti ini, dan Anda akan melihat bahwa kode di atas valid.
C 76543210 Nomor bit - -------- ---------- [0101101 1 0 - OK f 011001 1 0 1 - OK ] 01011 1 01 2 - OK - 0010 1 101 3 - OK x 011 1 1000 4 - OK i 01 1 01001 5 - OK f 0 1 100110 6 - OK ) 0010100 1 0 - OK # 001000 1 1 1 - Oke f 01100 1 10 2 - OK
Jika kita mengubah kode menjadi: ]f[-xif)#f
kita akan mendapatkan awal urutan berikut:
C 76543210 Bit number
- -------- ----------
] 01011101 0 <- OK
f 01100110 1 <- OK
[ 01011011 2 <- Not OK
- 00101101 3 <- OK
Seperti yang kita lihat, karakter ketiga [
tidak ada 1
di posisi ke-2 (diindeks nol), dan oleh karena itu kode ini tidak valid.
Kasus uji:
Input:
This is a string containing some symbols: ".#!".#&/#
Output:
! " # & / : T a b c e g h i l m n o r s t y .
7 1 2 3 1 1 1 1 2 1 1 1 2 1 5 1 2 4 3 1 6 2 1 2
Format output yang masuk akal adalah OK (apa pun yang paling nyaman bagi Anda). Misalnya Anda dapat memiliki: :7, !:1, ":2, #:3, &:1, /:1, T:1, a:2 ...
atau [ ,7][!,1][",2][#,3][&,1]...
. Outputnya dengan cara standar apa saja (kembali dari fungsi, dicetak ke STDOUT dll.)
1i
modulus 7
.
Ini adalah kode-golf , jadi kode terpendek dalam byte akan memenangkan ref .
00001010
. Ini bisa bermanfaat juga! :)
n%7
th> pastie.org/pastes/10985263/text