input: Write a function to determine if a given string is a palindrome. A palindrome is a string that reads the same forwards and backwards. If the given string is a palindrome, return True; otherwise, return False. 
  
  def is_palindrome(s):
    s = s.lower()
    left = 0
    right = len(s) - 1
    
    while left < right:
      if s[left] != s[right]:
        return False
      left += 1
      right -= 1
    return True
  
  assert is_palindrome("racecar") == True
  assert is_palindrome("hello") == False
  assert is_palindrome("A man a plan a canal Panama") == True
  assert is_palindrome("No lemon no melon") == True
  assert is_palindrome("") == True
output: def is_palindrome(s):
    s = ''.join(filter(str.isalnum, s)).lower()
    return s == s[::-1]