31 lines
886 B
Plaintext
31 lines
886 B
Plaintext
$ include "seed7_05.s7i";
|
|
|
|
const func integer: repeatLength (in string: text) is func
|
|
result
|
|
var integer: length is 0;
|
|
local
|
|
var integer: pos is 0;
|
|
begin
|
|
for pos range succ(length(text) div 2) downto 1 until length <> 0 do
|
|
if startsWith(text, text[pos ..]) then
|
|
length := pred(pos);
|
|
end if;
|
|
end for;
|
|
end func;
|
|
|
|
const proc: main is func
|
|
local
|
|
var string: line is "";
|
|
var integer: length is 0;
|
|
begin
|
|
for line range [] ("1001110011", "1110111011", "0010010010", "1010101010",
|
|
"1111111111", "0100101101", "0100100", "101", "11", "00", "1") do
|
|
length := repeatLength(line);
|
|
if length = 0 then
|
|
writeln("No rep-string for " <& literal(line));
|
|
else
|
|
writeln("Longest rep-string for " <& literal(line) <& ": " <& literal(line[.. length]));
|
|
end if;
|
|
end for;
|
|
end func;
|