Hoewel het lijkt dat je de wachtwoorden correct gevalideerd hebt, blijken ze toch niet te zijn wat het Officieel Authenticatiesysteem voor Rodelaars verwacht.

Dan realiseert de winkelier zich plots dat hij per abuis de regels voor het wachtwoordbeleid heeft uitgelegd uit zijn vorige job bij de winkel even verderop in de straat waar sledes verhuurd worden. Het Officieel Wachtwoordbeleid voor Rodelaars werkt eigenlijk een beetje anders.

Elk wachtwoordbeleid beschrijft eigenlijk twee posities in het wachtwoord, waarbij 1 staat voor het eerste karakter, positie 2 voor het tweede karakter, enzoverder. Juist één van deze twee posities moet de gegeven letter bevatten. Andere voorkomens van de letter zijn niet relevant voor het afdwingen van het wachtwoordbeleid.

Wees voorzichtig

Het concept “positie 0” bestaat niet in het Officieel Wachtwoordbeleid voor Rodelaars!

Op basis van dezelfde voorbeeldlijst met wachtwoorden:

1-3 a: abcde
1-3 b: cdefg
2-9 c: ccccccccc

hebben we dat

Opgave

Schrijf een functie isValidPassword waaraan twee strings (String) moeten doorgegeven worden: i) een wachtwoord en ii) het wachtwoordbeleid toen het wachtwoord werd ingesteld. De functie moet een Booleaanse waarde (Bool) teruggeven die aangeeft of het gegeven wachtwoord geldig is volgens de nieuwe interpretatie van het gegeven wachtwoordbeleid.

Voorbeeld

> isValidPassword "abcde" "1-3 a"
True
> isValidPassword "cdefg" "1-3 b"
False
> isValidPassword "ccccccccc" "2-9 c"
False