Welk woord zit verborgen in deze blokkentoren?

puzzel
Welk woord zit verborgen in deze blokkentoren?

Het verborgen woord is ALUMINIUM. De blokkentoren van deze puzzel wordt immers als volgt opgebouwd. We starten met de opeenvolgende hoofdletters van het alfabet, waarbij we de klinkers een rode kleur geven.

alfabet
We starten met de opeenvolgende letters van het alfabet, waarbij we de klinkers een rode kleur geven.

Daarna knippen we het alfabet doormidden na elke letter die voorkomt in het verborgen woord.

alfabet
Daarna knippen we het alfabet doormidden na elke letter die voorkomt in het verborgen woord.

In dit geval knippen we dus na de letters A, I, L, M, N en U, waardoor we de volgende fragmenten overhouden.

alfabet
In dit geval knippen we dus na de letters B, D, E, L, O, R en V, waardoor we de volgende fragmenten overhouden.

Met deze fragmenten maken we nu een blokkentoren waarbij de fragmenten van kort (boven) naar lang (onder) op elkaar gestapeld worden. Fragmenten die even lang zijn worden in alfabetische volgorde gestapeld (van boven naar onder).

puzzel
Met deze fragmenten maken we nu een blokkentoren waarbij de fragmenten van kort (boven) naar lang (onder) op elkaar gestapeld worden. Fragmenten die even lang zijn worden in alfabetische volgorde gestapeld (van boven naar onder).

Als laatste stap verwijderen we de letters uit de blokkentoren en is de puzzel klaar om opgelost te worden.

Opgave

Een blokkentoren uit bovenstaande puzzel kan beschreven worden door de volgende twee datastructuren:

Gevraagd wordt om deze twee datastructuren te bepalen voor de blokkentoren die correspondeert met een gegeven verborgen woord. Hiervoor ga je als volgt te werk:

Voorbeeld

>>> letters('ALUMINIUM')
['A', 'I', 'L', 'M', 'N', 'U']

>>> fragmenten('ALUMINIUM')
['A', 'BCDEFGHI', 'JKL', 'M', 'N', 'OPQRSTU', 'VWXYZ']

>>> toren = blokkentoren('ALUMINIUM')
>>> toren
('A', 'M', 'N', 'JKL', 'VWXYZ', 'OPQRSTU', 'BCDEFGHI')

>>> rijlengtes(toren)
(1, 1, 1, 3, 5, 7, 8)

>>> klinkerposities(toren)
{(0, 0), (6, 7), (5, 6), (6, 3), (5, 0)}

Bronnen