How to check whether a string is a palindrome, ignoring spaces and case in Pascal

1 Answer

0 votes
program PalindromeChecker;

function IsPalindrome(Str: string): Boolean;
var
  NormalizedStr, ReversedStr: string;
  I: Integer;
begin
  // #10 = Line Feed, LF / #13  = Carriage Return, CR / #9 = horizontal tab (TAB character)
  // Normalize the string: remove spaces and convert to lowercase
  NormalizedStr := '';
  for I := 1 to Length(Str) do
    if not (Str[I] in [' ', #9, #10, #13]) then
      NormalizedStr := NormalizedStr + LowerCase(Str[I]);

  // Reverse the normalized string
  ReversedStr := '';
  for I := Length(NormalizedStr) downto 1 do
    ReversedStr := ReversedStr + NormalizedStr[I];

  // Compare normalized string with reversed string
  IsPalindrome := NormalizedStr = ReversedStr;
end;

begin
  Writeln('Is palindrome: ', IsPalindrome('A man a plan a canal Panama'));
  Writeln('Is palindrome: ', IsPalindrome('abcDefg'));
end.



  
(*
run:
  
Is palindrome: TRUE
Is palindrome: FALSE
  
*)  


 



answered May 16, 2025 by avibootz
...