Dalam tantangan ini, Anda akan menempatkan huruf-huruf dari alfabet dalam bidang Kartesius dan menampilkan hasilnya sebagai teks.
Input Anda akan terdiri dari daftar daftar dengan 3 parameter:
- Koordinat X
- Koordinat Y
- Tali
Bagaimana?
Kita tahu bahwa sebuah pesawat Cartesian mengandung 2 sumbu dan 4 kuadran di mana tanda-tanda koordinat adalah , , , dan . Sebagai contoh
Pertimbangkan matriks 3 per 3 berikut sebagai bidang Kartesius
Jika kita diberikan dalam input, sesuatu seperti [[-1,1,L],[0,1,F]]
matriks kita akan terlihat mirip
Dan hasil akhirnya LF
Selain itu ada beberapa poin yang perlu kita ikuti untuk mendapatkan hasil yang benar:
- Ketika sebuah X, Y coord diulang, Anda harus menyatukan string. Contoh: asumsikan dalam (-1,1) string
F
ditempatkan dan Anda perlu menempatkan stringa
pada titik yang sama. Anda menggabungkan kedua string yang menghasilkanFa
dan itulah nilai yang akan masuk (-1,1). - Output Anda harus konsisten dengan matriks. Contoh bayangkan ini sebagai hasil akhir Anda:
Anda harus mengeluarkan
Ma rie
i s
cute
Mengapa?
Anda dapat melihat ini sebagai tabel di mana kolom adalah nilai sumbu x dan baris sumbu y.
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma" | "r" | "ie"
Row 2 | "i" | "s" |
Row 3 | "cute" | |
Semua nilai kolom harus memiliki panjang yang sama
Column 1 | Column 2 | Column 3
----------------------------------------
Row 1 | "Ma " | "r" | "ie"
Row 2 | "i " | "s" |
Row 3 | "cute" | |
Finnaly kami hasilkan
Ma rie
i s
cute
Uji Kasus
Input
------------
[[3, 3, "c"]
[4, 1, "un"]
[5, 3, "e"]
[4, 3, "od"]
[4, 2, "lf"]
[1, 2, "go"]
[2, 1, "i"]
[2, 1, "s f"]]
Output
--------------
code
go lf
is f un
Input
--------------
[[0, 0, 's'],
[-1,1, 'M'],
[0, 1, 'r'],
[-1,1, 'a'],
[1, 1, 'i'],
[-1, 0, 'i'],
[1, 1, 'e'],
[-1,- 1, 'c'],
[-1,- 1, 'u'],
[-1, -1, 'te']]
Output.
----------------
Ma rie
i s
cute
Catatan
- Ini seharusnya kode-golf
- Anda dapat membungkus koordinat dalam satu daftar misalnya
[[3, 3], "c"]
- Anda dapat mengambil input dalam format apa pun yang masuk akal
- Anda dapat mengasumsikan tidak akan ada angka atau ruang kosong hanya dalam input. misalnya ada bisa menjadi sesuatu seperti
a a
tetapi tidak pernah1
atau" "
atau1a
atau1 1
sumber
a a
tetapi tidak pernah1
atau `` atau1a
atau1 1
(int a,int b,string c)
:?Jawaban:
JavaScript (ES8),
186 180179 byteDisimpan 1 byte berkat @Shaggy
Cobalah online!
Indeks negatif di JS (atau kurang dari itu)
Diberikan array
A[]
, sangat legal di JS untuk melakukan sesuatu sepertiA[-1] = 5
. Namun, ini tidak akan menyimpan nilai dalam array itu sendiri. Sebagai gantinya, itu secara implisit akan memaksa indeks negatif ini menjadi string ("-1"
) dan mengatur properti terkait di objek array sekitarnya.Berita buruknya adalah bahwa properti tidak dapat diubah dengan metode seperti
map()
:Cobalah online!
Kode di atas hanya akan ditampilkan
3 is stored at index 1
.Solusi yang mungkin adalah:
Cobalah online!
Tapi:
Apa yang kami lakukan di sini
Inilah yang kami lakukan sebagai gantinya:
sumber
o
dalamw
:w=[o=[]]
.Python 2 ,
188185181 byteCobalah online!
sumber
APL (Dyalog Unicode) , 39 byte SBCS
Infix lambda anonim mengambil * daftar koordinat dan string sebagai argumen kiri dan kanan.
Cobalah online!
{
...}
"dfn"; Argumen kiri (koordinat) dan kanan (string) adalah⍺
dan⍵
:⊂''
string kosong terlampir, jadi gunakan sebagai fill untuk array(
...)⍴
siklis r eshape ke array dimensi berikut:⌊/⍺
nilai terendah di sepanjang setiap sumbu koordinat⍺-
kurangi itu dari semua koordinat1+
tambahkan itu ke satu (karena kami ingin rentang inklusif)c←
toko dic
(untuk c oordinates)⌈/
nilai tertinggi di sepanjang setiap sumbu itu⊃
buka kemasan untuk digunakan sebagai dimensim←
simpan dim
(untuk m atrix)⍵⊣
Buang yang mendukung stringm[c],←
tambahkan kem
koordinatc
m⊣
Buang yang mendukung amandemenm
⌽
cermin↓
dipecah menjadi daftar daftar string↑¨
campur setiap daftar string ke dalam matriks karakter, padding dengan spasi,/
kurangi dengan penyatuan horizontal⊃
membuka kemasan (karena pengurangan mengurangi peringkat dari 1 menjadi 0)* Jika diperlukan argumen tunggal dari jalinan koordinat dan string, itu akan menjadi 5 byte lebih lama.
sumber
05AB1E ,
4544 byteMengambil input-koordinat sebagai daftar dalam.
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
sumber
Arang , 60 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Penjelasan:
Ekstrak koordinat dari input.
Simpulkan koordinat x.
Lingkari koordinat y, ekstraksi dan gabungkan semua string pada koordinat yang diberikan.
Cetak string dalam urutan terbalik karena koordinat y dibalik dibandingkan dengan sistem koordinat Charcoal.
Pindah ke awal kolom berikutnya.
sumber
Perl 5
-p00
-MList::Util=max
, 148 byteTIO
Bagaimana
s/(\S+) (\S+) (.*) /
...;''/ge;
, penggantian flags/g
loop/e
eval, penggantian dievaluasi menjadi input baris kliring kosong / variabel default$a{$1}=max$a{$1},length($h{$2}{$1}.=$3)
, autovivifies, peta% h dari peta yang tingkat pertama kunci tingkaty
keduax
dan merangkai string$3
ke nilai, dapatkan panjang dan otomatis film peta kedua% a yang kuncix
dan nilai maks panjangnya di atas kolom (x
)for$y(sort{$b-$a}keys%h){
...;say""}
, untuk indeks baris$y
dalam kunci yang%h
diurutkan secara numerik terbalik,say""
di akhir untuk mencetak baris barumap{
...}sort{$a-$b}keys%a
, untuk indeks kolom$_
pada kunci% a diurutkan secara numerikprintf"%-$a{$_}s",$h{$y}{$_}
, cetak string sejajar ke kiri dengan lebar kolomsumber
Bersih ,
212206 byteCobalah online!
sumber