33 lines
977 B
Text
33 lines
977 B
Text
$ include "seed7_05.s7i";
|
|
|
|
const func string: missingPermutation (in array string: perms) is func
|
|
result
|
|
var string: missing is "";
|
|
local
|
|
var integer: pos is 0;
|
|
var set of char: chSet is (set of char).EMPTY_SET;
|
|
var string: permutation is "";
|
|
var char: ch is ' ';
|
|
begin
|
|
if length(perms) <> 0 then
|
|
for key pos range perms[1] do
|
|
chSet := (set of char).EMPTY_SET;
|
|
for permutation range perms do
|
|
ch := permutation[pos];
|
|
if ch in chSet then
|
|
excl(chSet, ch);
|
|
else
|
|
incl(chSet, ch);
|
|
end if;
|
|
end for;
|
|
missing &:= min(chSet);
|
|
end for;
|
|
end if;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
begin
|
|
writeln(missingPermutation([] ("ABCD", "CABD", "ACDB", "DACB", "BCDA", "ACBD",
|
|
"ADCB", "CDAB", "DABC", "BCAD", "CADB", "CDBA", "CBAD", "ABDC", "ADBC",
|
|
"BDCA", "DCBA", "BACD", "BADC", "BDAC", "CBDA", "DBCA", "DCAB")));
|
|
end func;
|