Tujuan Anda adalah mengambil multiline ASCII like
| v |
* * * *
* * *
dan memiliki larik yang mencakup segala sesuatu yang bukan bintang yang diubah menjadi bintang (kecuali untuk spasi [lebar-lebar]) dan jumlah bintang yang disertakan dan jumlah bintang yang ada di dalamnya. Jadi output dari contoh saya adalah:
['* * *
* * * *
* * *',7,10]
atau
["* * *\n* * * *\n * * *", 7, 10]
tergantung pada apa yang dilakukan kode bahasa Anda.
Ini adalah tantangan kode-golf , sehingga byte terpendek menang!
Jawaban:
GolfScript, 30 karakter
Mengambil input dari stdin. Contoh ( tes online ):
sumber
Python -
5866 karakterSooo ... usaha Code Golf pertamaku ...
Kode:
Keluaran:
Variabel:
i
- input stringp
- polao
- output - dihapusKetergantungan:
re
Modul pythonKode lengkap:
Suntingan:
import re
ke solusio=
dengan cetakr'[/\S/g]'
diubah menjadir'\S'
(terima kasih @ 14mRh4X0r)sumber
re
modul sebagai dependensi, tetapi masih perlu untuk memasukkannya dalam jawaban dan skor. Program Anda juga tidak menampilkan hasil seperti yang seharusnya (namun, karena Anda tidak benar-benar menggunakano
variabel untuk apa pun, Anda hanya bisas/o=/print/
dan hanya kehilangan tiga). Selain itu, ini terlihat bagus!i
Variabel Anda mengandung| v | * * * * * * *
alih-alih input tes yang sebenarnya (yang mencakup baris baru). Yang sedang berkata, program Anda masih berfungsi jika Anda memasukkan baris baru, sehingga program Anda tidak harus diubah sama sekali, hanya posting. :)r'[/\S/g]'
bisa diganti denganr'\S'
untuk menyimpan beberapa karakter.Ruby 2.0, 53 karakter
Tidak yakin tentang format input / output yang dibutuhkan. Ini membutuhkan input pada STDIN dan memformat output seperti:
Memasukkan:
Keluaran:
sumber
JavaScript (ECMASCript 6) - 51 Karakter
Asumsikan variabel
A
berisi input ASCII multiline. Untuk mengambilnya dari pengguna lalu gantiA
denganprompt()
(+7 karakter) atau sebagai fungsi (lagi +7 karakter):Output ke konsol.
Uji:
Output:
sumber
PHP ≥ 5.5,
846963 byteTidak banyak yang bisa dikatakan tentang ini. Karena tidak ada spesifikasi untuk bagaimana menangani input / output, saya mengasumsikan penyimpanan variabel. Mengharapkan input dalam variabel
$s
dan menyimpan array dalam variabel$a
. Sayang sekali nama-nama fungsi itu begitu panjang.sumber
Rebol, 84
Setel
t
ke teks seperti itu ....dan ini akan kembali ...
Versi tidak dikolomisasi dengan beberapa catatan:
sumber
Groovy:
9692 karakterMenggunakan Groovy 2.2.1
Baca dari STDIN. IMHO, tidak terlalu pintar, tetapi cukup mudah dibaca (mengingat singkatnya)
sumber
Dalam JavaScript / CoffeeScript - 66 Karakter
Seperti Contoh PHP, panjangnya adalah karena panjang nama fungsi
Contoh Penggunaan (CoffeeScript):
sumber
[x.replace(r=/\S/g,s='*'),x.split(s).length-1,x.match(r).length]
C # - 116
Cara terpendek yang dapat saya pikirkan untuk mengembalikan array ..
sumber
Perl, 52 byte
Mengambil input dari input standar, mencetak ke output standar.
Dengan asumsi format output seperti yang Anda jelaskan dalam pertanyaan Anda, dapat dibuat sedikit lebih pendek jika format output yang berbeda diizinkan.
sumber
Javascript - 50 karakter
Uji
Memasukkan
Keluaran
sumber
AWK, (terlalu panjang)
Saya bukan
awk
master jadi saya yakin itu bisa diperbaiki. Takeaway adalah saya senang menulisnya! Perjuangan datang dengan cara melestarikannewlines
dari input tetapi tidak menempatkan, 7,10]
pada baris baru. Logika itu sedikit (NR>1{z=z "\n" $0} NR==1{z=z $0}
) menghabiskan banyak karakter. Saya tertarik melihatawk
pendekatan lain di bagian depan itu.Saya tidak memberikan file di akhir skrip, tetapi jelas penggunaannya
awk '{<code>}' ascii.txt
, di manaascii.txt
berisi "input" multisaluran.Keluaran
sumber
Java, 199 byte
Golf:
Tidak golf:
Jalankan online .
sumber