pengantar
Catatan: ini bukan semacam metode untuk mendorong kecurangan. Seperti yang sudah dikatakan oleh Cᴏɴᴏʀ O'Bʀɪᴇɴ , belajar adalah solusi terbaik untuk lulus ujian: 3.
Pertimbangkan jawaban berikut untuk tes pilihan ganda:
ABCBCAAB
Ini adalah tabel yang menunjukkan apakah jawabannya cocok:
A B C B C A A B
A 1 0 0 0 0 1 1 0
B 0 1 0 1 0 0 0 1
C 0 0 1 0 1 0 0 0
Ini memberi kita angka-angka berikut:
10000110, 01010001, 00101000
Tantangannya adalah untuk mencetak angka-angka biner ini. Tetapi penting untuk melihat huruf mana yang digunakan dalam tes pilihan ganda. Sebagai contoh:
ABCDCDBCDABC
Huruf tertinggi ini adalah D
, yang merupakan huruf ke - 4 dalam alfabet . Oleh karena itu, kita perlu menampilkan 4 angka biner yang berbeda . Yaitu:
100000000100, 010000100010, 001010010001, 000101001000
Perhatikan bahwa Anda harus melihat huruf tertinggi . Perhatikan contoh berikut:
AACCACAC
Meskipun B
tidak digunakan, kita perlu menampilkan hasil biner untuk B
. Itu artinya, jawabannya adalah:
11001010, 00000000, 00110101
Tugas
Diberikan jawaban untuk tes pilihan ganda, mengeluarkan angka-angka biner. Anda dapat berasumsi bahwa input tidak akan kosong dan hanya berisi surat-surat[A-Z]
. Alih-alih satu dan nol, Anda juga dapat menggunakan benar dan salah.
Kasus uji:
Input: ABBBABABA
Output: 100010101, 011101010
Input: AAAAAAAAA
Output: 111111111
Input: AFGHEEHFD
Output: 100000000 000000000 000000000 000000001 000011000 010000010 001000000 000100100
Input: Z
Output: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
Input: ABCDCDBCDABC
Output: 100000000100, 010000100010, 001010010001, 000101001000
Ini adalah kode-golf , jadi pengiriman dengan jumlah byte paling sedikit menang!
[a-z]
saja?Jawaban:
Pyth, 12 byte
Output sebagai array boolean bersarang.
Coba di sini .
sumber
Python 3, 71
Disimpan 22 byte berkat Ogaday.
Disimpan 3 byte berkat DSM.
Menyimpan banyak byte berkat array bools yang valid.
Mengambil input baris perintah huruf besar.
sumber
*k,=map(ord,input())
PowerShell,
959473 byteMengambil input sebagai string huruf besar, tetapi segera melemparkannya
[char[]]
. Kami kemudian beralih dari0..
ke nilai maksimal yang$a
diambil secara alfabet (karenanya-65
untuk mengkonversi dari ASCII). Misalnya, denganADCEB
, ini dapat dianggap sebagai perulangan dariA
keE
.Setiap iterasi, kami menetapkan variabel pembantu
$d
sama dengan nilai alfabet saat ini (bukan ASCII). Kami kemudian mengulangi semua$a
, setiap kali menempatkan salah satu0
atau1
pada pipa, berdasarkan apakah$_-$d-65
itu benar atau salah (yaitu, apakah kita berada di "slot" yang tepat). Ini berfungsi karena setiap nilai non-nol di PowerShell adalah benar, artinya jika huruf kita saat$_
ini tidak "menyamakan" slot yang kita masuki$d
, maka!
yang itu$false
, atau0
.Masing-masing array
0
s dan1
s kemudian-join
diedit bersama dan dimasukkan kembali ke dalam pipa. Ketika loop luar berakhir, kami memiliki array string, yang akan mencetak satu string per baris.Contohnya
Sunting 1 - menyimpan byte dengan menggunakan Boolean-bukan bukannya -eq
Sunting 2 - menyimpan 21 byte lainnya dengan menghilangkan array tambahan $ b
sumber
LabVIEW,
302220 LabVIEW PrimitifMelewati dari az hingga jumlah semua bools sama dengan panjang input. kemudian Ubah bool menjadi angka.
Sekarang langsung ambil max daripada memeriksa jumlah bool.
Karena bool 2D layak sekarang saya menyimpan 2 Primitif dengan mengeluarkan kabel hijau di depan
?1:0
bisa mengulanginya tetapi saya terlalu malas ...sumber
Cjam, 25 byte
Mendesah,
Penjelasan
sumber
Haskell,
4634 byteContoh penggunaan:
g "ACDC"
->[[True,False,False,False],[False,False,False,False],[False,True,False,True],[False,False,True,False]]
.Bagaimana itu bekerja:
sumber
Pyth,
2019171514 bytePenjelasan:
Output array 2D bools
Coba di sini
sumber
ES6, 92 byte
Mengembalikan array array yang palsu dan trues. Jika Anda lebih suka array string nol dan satu, maka untuk 97 byte:
sumber
Oktaf, 19 byte
Menggunakan siaran otomatis Octave pada rentang
A
ke elemen maks dalam input untuk menghasilkan array boolean elemen pencocokan 2d.Contoh:
Cobalah di sini di ideone .
sumber
Lua,
208189 BytesItu sulit di lua, seperti biasa, kita harus melakukan semuanya dari awal, dan itu membutuhkan banyak tempat! Program ini menggunakan string sebagai argumen, dan mencetak hasilnya :).
Sunting: @Adnan memberi tahu saya bahwa kami sekarang diizinkan untuk mengembalikan matriks boolean, jadi inilah versi baru! Sekarang adalah fungsi yang mengambil string karakter kapital dan mengembalikan matriks :).
Versi 208 Byte lama
Ini adalah yang bekerja dengan argumen dan hasil cetak.
Tidak terseret dan penjelasan
Mencoba untuk mencetak array di Lua akan menghasilkan pencetakan alamatnya dan menggabungkan bools tidak mungkin. Jadi, inilah fungsi yang akan membantu Anda jika Anda ingin menguji kiriman ini
sumber
Perl, 84 byte
Oh sayang, sepertinya aku telah menghancurkan stabilo.
Versi tidak disatukan:
sumber
PHP,
106929087 byteMenggunakan penyandian Windows-1252.
Jalankan seperti ini (
-d
ditambahkan hanya untuk estetika):$i=0
$x
tempat lain, dan menambah$c
untuk kompensasisumber
C #, 68 byte
Jalankan di C # Pad
Fungsi anonim ini mengambil
char[]
input dan output sebagaiIEnumerable<IEnumerable<int>>
, dengan hanya 0 dan 1.sumber
k, 15 byte
Cobalah online!
sumber