Als je vlucht de regionale luchthaven begint te naderen waar je op een veel groter vliegtuig zal instappen, worden de douaneformulieren1 aan de passagiers uitgedeeld.
Op het formulier moet je een reeks van 26 ja-of-nee-vragen beantwoorden, die aangeduid worden met de letters a
tot en met z
. Het enige dat je moet doen, is de vragen identificeren waarop iemand in de groep “ja” geantwoord heeft. Omdat je alleen in je groep bent, duurt dat niet al te lang.
De persoon naast je lijkt echter last te hebben van een taalbarrière en vraagt of je kunt helpen. Voor elke persoon in zijn groep noteer je de letters van de vragen waarop ze met “ja” geantwoord hebben, één persoon per regel. Bijvoorbeeld:
abcx
abcy
abcz
In deze groep zijn er 6
vragen waarop iemand “ja” geantwoord heeft: a
, b
, c
, x
, y
en z
. (Meerdere “ja”-antwoorden op dezelfde vraag tellen niet dubbel; elke vraag telt maximaal één keer mee.)
Een andere groep roept ook je hulp in, daarna nog één, en uiteindelijk heb je de antwoorden verzameld van alle groepen op het vliegtuig. De antwoorden van elke groep worden van elkaar gescheiden door een lege regel, en binnen elke groep staan de antwoorden van elke persoon op een afzonderlijke regel. Bijvoorbeeld:
abc
a
b
c
ab
ac
a
a
a
a
b
Deze lijst bevat de antwoorden van vijf groepen:
3
vragen “ja” geantwoord heeft: a
, b
en c
.3
vragen “ja” geantwoord hebben: a
, b
en c
.3
vragen “ja” geantwoord hebben: a
, b
en c
.1
vraag “ja” geantwoord hebben: a
.1
vraag “ja” geantwoord heeft: b
.In dit voorbeeld is de som van al deze tellingen gelijk aan 3 + 3 + 3 + 1 + 1 =
11
.
Tel voor elke groep op hoeveel vragen iemand “ja” geantwoord heeft. Wat is de som van al deze tellingen? Bepaal dit op de volgende manier:
groupCount
waaraan de “ja”-antwoorden (String
) van één groep moeten doorgegeven worden. De antwoorden van elke persoon in de groep worden gescheiden door spaties. De functie moet teruggeven op hoeveel (Int
) vragen iemand in de groep “ja” geantwoord heeft.planeCount
waaraan de padnaam (String
) moet doorgegeven worden van een tekstbestand dat antwoorden verzamelt van alle groepen op het vliegtuig. De functie moet de som (Int
) teruggeven van het aantal vragen waarop iemand in de groep “ja” geantwoord heeft.In deze interactieve sessie gaan we ervan uit dat het tekstbestand forms.txt
2 zich in de huidige directory bevindt.
> groupCount("abc")
3
> groupCount("a b c")
3
> groupCount("ab ac")
3
> groupCount("a a a a")
1
> groupCount("b")
1
> planeCount("forms.txt")
11