Terinspirasi oleh pelajaran APL minggu lalu .
Diberikan peta kursi 2D besar dan daftar pelanggan 1D, kembalikan peta kursi dan daftar pelanggan tetapi diubah sebagai berikut (untuk menunjukkan kursi yang diduduki dan pelanggan yang duduk):
Untuk setiap huruf unik dalam daftar penumpang input, huruf kecil yang banyak (atau semua, jika tidak cukup) dari surat itu di peta kursi, akan kiri-ke-kanan, atas-ke-bawah.
Untuk setiap huruf unik di peta tempat duduk, huruf kecil yang banyak (atau semua, jika tidak cukup) dari surat itu dalam daftar penumpang, ke kiri-ke-kanan.
- Peta kursi masukan hanya berisi spasi dan huruf besar dari set {
F
,B
,P
,E
}, dan mungkin:- dipisahkan menjadi baris demi baris
- daftar string
- matriks karakter huruf besar
- dalam format lain yang sebanding
- Input daftar pelanggan hanya berisi huruf besar dari set {
F
,B
,P
,E
} dan mungkin:- Sebuah benang
- daftar karakter
- dalam format lain yang sebanding
- Peta kursi yang dikembalikan harus identik dengan yang dimasukkan, kecuali nol atau lebih huruf yang dilipat menjadi huruf kecil
- Daftar pelanggan yang dikembalikan harus identik dengan yang dimasukkan, kecuali bahwa nol atau lebih huruf telah dilipat menjadi huruf kecil
- Ruang putih terkemuka dan tertinggal diizinkan
Contoh (edisi singkat dari pesawat United)
ERJ145
Input peta kursi:
P
E
E PP
E EE
E EE
E EE
E EE
P PP
E EE
E EE
E EE
Input daftar penumpang:
FFEEEEEEEEEEEEEEEE
Output peta kursi:
P
e
e PP
e ee
e ee
e ee
e ee
P PP
e eE
E EE
E EE
Output daftar penumpang:
FFeeeeeeeeeeeeeeee
CRJ700
Input peta kursi:
F FF
F FF
PP PP
PP PP
PP PP
EE EE
PP PP
EE EE
EE EE
EE EE
Input daftar pelanggan:
FFFFFFFFPPEEEEEEEEEEEEEEEEEEEEE
Output peta kursi:
f ff
f ff
pp PP
PP PP
PP PP
ee ee
PP PP
ee ee
ee ee
ee ee
Output daftar pelanggan:
ffffffFFppeeeeeeeeeeeeeeeeEEEEE
B757
Input peta kursi:
F F F F
F F F F
F F F F
PPP
PPP PPP
PPP PPP
PPP PPP
EEE EEE
EEE EEE
PPP PPP
EEE EEE
EEE EEE
EEE
EEE EEE
EEE EEE
EEE EEE
EEE
Input daftar penumpang:
FEEEEEEEEFEEEFEEEEEEEEFEEFFEEFEFFFEE
Output peta kursi:
f f f f
f f f f
f f F F
PPP
PPP PPP
PPP PPP
PPP PPP
eee eee
eee eee
PPP PPP
eee eee
eee eee
eeE
EEE EEE
EEE EEE
EEE EEE
EEE
Output daftar penumpang:
feeeeeeeefeeefeeeeeeeefeeffeefefffee
B767
Input peta kursi:
F F F
F F F
BB B B BB
BB B B BB
BB B B BB
PP BB
PP
PP PPP PP
PP PPP PP
PP PPP PP
PP PPP PP
PP EEE PP
EE EEE EE
EE EEE EE
EE EEE EE
EE EEE EE
EE EEE EE
Input daftar penumpang:
PPFEFEEEEEEEBBEEFFPEBPEBBEEFEEEFEEEEEEFPEEEPB
Output peta kursi:
f f f
f f f
bb b b bb
BB B B BB
BB B B BB
pp BB
pp
pp PPP PP
PP PPP PP
PP PPP PP
PP PPP PP
PP eee PP
ee eee ee
ee eee ee
ee eee ee
ee EEE EE
EE EEE EE
Output daftar penumpang:
ppfefeeeeeeebbeeffpebpebbeefeeefeeeeeeFpeeepb
Jawaban:
05AB1E ,
221615 byteDisimpan 6 byte berkat Nit memperhatikan bahwa peta kursi dapat diambil sebagai string.
Cobalah online!
Penjelasan
sumber
Python 2 ,
938984838278 byteCobalah online!
Mengambil input sebagai dua string. Mencetak dua string
Diselamatkan
sumber
s,p=[x.replace(c,c.lower(),c in s)for x in[s,p]]
untuk 84 bytel=input()
for c in l[1]:l=[x.replace(c,c.lower(),c in l[0])for x in l]
print l
C (dentang) ,
7568 byteMembawa dua
char *
(kursi & penumpang) yang isinya dimodifikasi di tempat.Cobalah online!
Saya kurang terbiasa bermain golf di C daripada di Python, tapi itu menyenangkan juga!
Jika ada yang punya ide untuk memperpendek-> Terima kasih kepada @Dave untuk membantu saya bermain golf lebih banyak byte!*r+=32,*i+=32
bagian saya akan berterima kasih.sumber
C (gcc) , 63 byte
Cobalah online!
Banyak kredit untuk etene untuk konsep dasar. Hanya menerapkan golf berat pada strategi jawabannya.
sumber
index()
alih-alihstrchr()
C (gcc) , 64 byte
Meminjam dari jawaban @ etene, saya menghapusnya
if
dengan?:
operator tersier dan menggunakan kembali penunjuk penumpang sebagai indeksnya sendiri.Cobalah online!
sumber
Jelly , 19 byte
Cobalah online!
sumber
Scala , 104 byte
Cobalah online!
Mengambil 2 seq karakter dalam input dan mengembalikan 2 seq karakter.
Penjelasan:
sumber
Retina , 36 byte
Cobalah online! Mengasumsikan daftar pelanggan adalah baris terakhir dari input. Penjelasan: Menemukan pasangan karakter huruf besar yang cocok dan
$l
menurunkannya menggunakan sehingga menghindari karakter menengah.sumber
APL (Dyalog Classic) ,
2927 byteCobalah online!
sumber
Perl 5
-pF
, 48 byteCobalah online!
Input baris pertama adalah daftar penumpang. Semua baris berikutnya adalah peta tempat duduk. Outputnya sama.
sumber