Tantangan Anda hari ini adalah mengambil masukan seperti ini:
fbcfbee
ffcabbe
debceec
bccabbe
edcfbcd
daeaafc
eebcbeb
Dan hasilkan langkah terbaik yang mungkin ada dalam game seperti Bejeweled yang akan cocok dengan tiga atau lebih huruf, seperti ini (perhatikan ibukota B
dan C
):
fbcfbee
ffcabbe
deBCeec
bccabbe
edcfbcd
daeaafc
eebcbeb
Spesifikasi lengkap:
- Masukan akan berupa
n
barisn
huruf kecil masing-masing (di manan
bisa nomor apa saja). - Outputnya akan menjadi langkah terbaik yang bisa Anda lakukan dalam pertandingan-3, dengan dua huruf yang ingin Anda tukarkan dengan huruf besar.
Kecocokan harus memiliki prioritas berikut (dalam contoh ini,
.
menunjukkan kotak yang tidak masalah):Lima berturut-turut
xxYxx ..X..
Rusak lima berturut-turut
X.. Yxx x.. x..
atau
.X. xYx .x. .x.
Empat berturut-turut
xYxx .X..
Tiga berturut-turut
xYx .X.
Anda harus menemukan kecocokan prioritas tertinggi dan menghasilkannya.
- Jika ada beberapa kecocokan dengan prioritas yang sama, Anda dapat mengeluarkan salah satu dari mereka.
- Akan selalu ada setidaknya satu pertandingan (program Anda dapat rusak jika tidak ada pertandingan, atau melakukan apa pun yang Anda inginkan).
- I / O dapat dalam format apa pun yang masuk akal (stdin / out, membaca dan menulis file, argumen fungsi / nilai pengembalian, kotak dialog, dll.) Tetapi TIDAK di-hardcode (seperti
x="[insert input here]"
). - Ini adalah kode-golf sehingga kode terpendek dalam byte menang. Jika Anda menggunakan akses jaringan apa pun karena beberapa alasan, semua byte yang diunduh dari jaringan dihitung berdasarkan skor Anda.
..x.\nxxYX\n..x.
?Jawaban:
Python3.4, 772
(Menggunakan tab untuk indentasi, bukan spasi.)
sumber
[c for c in l]
, Anda bisa melakukannyalist(l)
.