PROG0373 - Magic words

no tags 

A magic word is needed to open a box. On the outside of the box is an encrypted version of the magic word. This encoding is done on the base of a secret code that consist of a one-to-one mapping between the letters of the alphabet and a series of 26 integers.

magisch woord
Box showing a magic word that was encoded as a list of integers [9, 23, 14, 14, 18, 5].

Assignment

Write a function magicWord that takes two arguments: a list of integers and a string. The function must return a Boolean value that specifies whether or not the list of integers could be a valid encoding of the given word. Such an encoding must make use of a one-to-one mapping between the letters of the alphabet and a series of 26 integers, which is used to convert each letter of the magic word into its corresponding integer. The coding scheme does not distinguish between uppercase and lowercase letters.

Example

>>> magicWord([9, 23, 14, 14, 18, 5], 'winner')
True
>>> magicWord([9, 23, 14, 14, 18, 5], 'looser')
False
>>> magicWord([9, 23, 14, 14, 18, 5], 'zipper')
True
>>> magicWord([9, 23, 14, 14, 18, 5], 'hummus')
False

Je hebt een magisch woord nodig om een doos open te krijgen. Op de buitenkant van de doos staat een gecodeerde versie van dit magische woord. Deze codering is gebeurd op basis van een geheime code die bestaat uit een één-op-één afbeelding tussen de letters van het alfabet en een reeks van 26 gehele getallen.

magisch woord
Doos met daarop een magisch woord dat gecodeerd werd als een lijst van gehele getallen [9, 23, 14, 14, 18, 5].

Opgave

Schrijf een functie magischWoord waaraan twee argumenten moeten doorgegeven worden: een lijst van gehele getallen en een string. De functie moet een booleaanse waarde teruggeven die aangeeft of de gegeven lijst van gehele getallen al dan niet een codering kan zijn van het opgegeven woord. Een dergelijke codering moet dus gebruik maken van een één-op-één afbeelding tussen de letters van het alfabet en een reeks van 26 gehele getallen, die gebruikt wordt om elke letter van het magische woord om te zetten in het corresponderende geheel getal. Bij de codering wordt geen onderscheid gemaakt tussen hoofdletters en kleine letters.

Voorbeeld

>>> magischWoord([9, 23, 14, 14, 18, 5], 'winner')
True
>>> magischWoord([9, 23, 14, 14, 18, 5], 'looser')
False
>>> magischWoord([9, 23, 14, 14, 18, 5], 'zipper')
True
>>> magischWoord([9, 23, 14, 14, 18, 5], 'hummus')
False


Added by:Peter Dawyndt
Date:2013-04-08
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None