По-старинке (с накапливаемым integer вместо динсписка) как-то всё же проще
Код:
function smtr(ds: string): boolean;
var
i, b : integer;
begin
Result:= false;
if Length(ds) mod 2 > 0 then Exit;
b:= 0;
for i := 1 to Length(ds) div 2 do
if ds[i] = ds[Length(ds) - (i-1)] then Inc(b);
Result:= b = Length(ds) div 2;
end;