blob: 69b0ee199b04aa6733c2f437df8c92473072558d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
MODULE Ch2 EXPORTS Main;
IMPORT SIO,Text,CharIntTbl;
PROCEDURE OddLetters(READONLY S:TEXT):BOOLEAN =
VAR
H := NEW(CharIntTbl.Default).init(Text.Length(S));
It:CharIntTbl.Iterator;
K:CHAR;
V:INTEGER;
BEGIN
FOR I := 0 TO Text.Length(S)-1 DO
K := Text.GetChar(S,I);
IF NOT H.get(K,V) THEN EVAL H.put(K,1)
ELSE EVAL H.put(K,V+1)
END
END;
It := H.iterate();
WHILE It.next(K,V) DO
IF V MOD 2 = 0 THEN RETURN FALSE END
END;
RETURN TRUE
END OddLetters;
BEGIN
SIO.PutBool(OddLetters("weekly")); SIO.Nl();
SIO.PutBool(OddLetters("perl")); SIO.Nl();
SIO.PutBool(OddLetters("challenge")); SIO.Nl()
END Ch2.
|