Pertimbangkan daftar kata yang diurutkan berdasarkan abjad berikut:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
Semua kata mulai dengan b
, dan 5 pertama mulai dengan bal
. Jika kita hanya melihat 2 kata pertama:
balderdash
ballet
kita bisa menulis:
balderdash
+let
di mana ' '
digunakan di mana kata berbagi karakter awalan dengan kata sebelumnya; kecuali untuk '+'
karakter yang menunjukkan karakter TERAKHIR di mana kata kedua berbagi awalan dengan kata sebelumnya.
Ini adalah semacam visualisasi 'trie' : induknya adalah ' bal
', dan memiliki 2 keturunan: 'derdash'
dan 'let'
.
Dengan daftar yang lebih panjang, seperti:
balderdash
ballet
brooding
kita juga dapat menggunakan karakter pipa '|'
untuk membuatnya lebih jelas di mana awalan bersama berakhir, sebagai berikut:
balderdash
| +let
+rooding
dan pohon yang setara akan memiliki akar 'b'
memiliki dua anak: pohon itu memiliki akar 'al'
dan dan dua anaknya 'derdash'
dan 'let'
; dan 'rooding'
.
Jika kami menerapkan strategi ini ke daftar asli kami,
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
kami mendapatkan output yang terlihat seperti:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
Jika dua kata berurutan dalam daftar tidak memiliki awalan bersama, tidak ada karakter khusus yang diganti; misalnya untuk daftar:
broom
brood
crude
crumb
kami ingin output:
broom
+d
crude
+mb
Memasukkan
Kata-kata dalam input hanya terdiri dari alfanumerik (tanpa spasi atau tanda baca); ini mungkin dalam bentuk daftar string, string tunggal, atau pendekatan masuk akal lainnya, selama Anda menentukan format yang Anda pilih. Tidak ada dua kata berurutan yang akan sama. Daftar ini akan disortir berdasarkan abjad.
Keluaran
Output Anda dapat berisi spasi spasi per baris atau total, tetapi tidak ada spasi putih terkemuka. Daftar string atau yang serupa juga akan diterima.
Ini adalah kode-golf ; kode terpendek di setiap bahasa tetap memiliki hak untuk menyombongkan diri. Larangan biasa terhadap celah berlaku.
Uji Kasus
Input:
apogee
apology
app
apple
applique
apply
apt
Output:
apogee
|+logy
+p
|+le
| +ique
| +y
+t
Input:
balderdash
ballet
balloonfish
balloonist
ballot
brooding
broom
donald
donatella
donna
dont
dumb
Output:
balderdash
| +let
| +oonfish
| | +ist
| +t
+rooding
+m
donald
| |+tella
| +na
| +t
+umb
+
bawah yang pertama o
, tapi saya tidak menulis tantangan jadi saya tidak yakin.
ball
setelahballoon
. Output apa yang harus kita harapkan?