Een woord $$k$$ is een kangoeroe als je één van zijn synoniemen $$j$$ kunt bekomen door letters te schrappen uit $$k$$. Dat synoniem $$j$$ wordt het jong van de kangoeroe $$k$$ genoemd. Hier zijn alvast enkele voorbeelden:
kangoeroe | jong |
---|---|
action | act |
alone | lone, one |
allocate | allot |
blossom | bloom |
capable | able |
container | can, tin |
chicken | hen |
disappointed | sad |
kangoeroe | jong |
---|---|
feast | eat |
inflammable | flammable |
latest | last |
malignant | malign |
masculine | male |
myself | me |
gigantic | giant |
signal | sign |
De terminologie verwijst naar het feit dat een kangoeroe haar jongen in een buidel draagt. Analoog daarmee draagt een kangoeroewoord een jongwoord met zich mee.
Bovendien kan het ook voorkomen dat kangoeroewoorden meerdere jongwoorden in zich dragen, net zoals een kangoeroe meerdere jongen tegelijkertijd in haar bundel kan dragen. Een tweelingkangoeroe is een kangoeroe die twee jongen in zich draagt: container draagt zowel tin als can.
Een antikangoeroe is een woord dat een tegengesteld woord in zich draagt: covert draagt overt, en animosity draagt amity.
Een grote kangoeroe is een kangoeroe die zelf een kangoeroe in zich draagt: alone draagt lone in haar buidel, die op haar beurt one in haar buidel draagt.
Schrijf een functie kangoeroe waaraan twee woorden $$k$$ (str) en $$j$$ (str) moeten doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven, die aangeeft of $$k$$ een kangoeroe is met jong $$j$$.
Schrijf een functie jongen waaraan twee argumenten moeten doorgegeven worden: i) een woord $$k$$ en ii) een collectie (list, tuple of set) met woorden (str). De functie moet een verzameling (set) teruggeven met alle jongen (str) van $$k$$ die voorkomen in de geven collectie woorden.
De functies kangoeroe en jongen mogen geen onderscheid maken tussen hoofdletters en kleine letters bij het bepalen van kangoeroewoorden en hun jongen.
>>> kangoeroe('blossom', 'bloom')
True
>>> kangoeroe('DISAPPOINTED', 'SAD')
True
>>> kangoeroe('GIGANTIC', 'giant')
True
>>> kangoeroe('ALONE', 'lone')
True
>>> kangoeroe('Marsupial', 'Kangaroo')
False
>>> jongen('blossom', ['bloom', 'bud', 'floweret'])
{'bloom'}
>>> jongen('DISAPPOINTED', ('SAD', 'DOWN', 'UPSET', 'FOILED'))
{'SAD'}
>>> jongen('GIGANTIC', {'giant', 'colossal', 'huge', 'massive', 'enormous', 'immense', 'vast'})
{'giant'}
>>> jongen('ALONE', {'lone', 'one', 'only', 'solo', 'unaccompanied'})
{'lone', 'one'}
>>> jongen('Marsupial', ['Kangaroo', 'Wallaby', 'Koala', 'Opossum', 'Wombat'])
set()