Задача: найти максимальной длины палендром.
Решение:
Правильная логика мышления ?
Добавлено через 4 минуты
Хотя, более красиво вот так:
С break вырвиглазно было.
Решение:
:
var
Str: string;
Found: boolean;
function IsEqual(s: string): boolean;
begin
Result := true;
for var i := 1 to s.Length div 2 do
if s[i] <> s[s.Length - i + 1] then begin Result := false;break end;
end;
begin
Readln(Str);
var Length2 := Str.Length;
Found := false;
while not Found and (Length2 > 0) do
begin
var str2 := '';
for var i := 1 to Str.Length - Length2 + 1 do
begin
for var j := i to i + Length2 - 1 do
str2 += Str[j];
if IsEqual(str2) then
begin
Found := true;
WritelnFormat('Найден максимально длинный палендром {0}.', str2);
end;
str2 := ''
end;
Dec(Length2);
end;
if not Found then Writeln('Не найден максимально длинный палендром.');
Readln();
end.
Добавлено через 4 минуты
Хотя, более красиво вот так:
:
function IsEqual(s: string): boolean;
begin
Result := true;
var j := s.Length div 2;
var i := 1;
while Result and (i <= j) do
begin
if s[i] <> s[s.Length - i + 1] then Result := false;
Inc(i);
end;
end;