建立一個檢查迴文的演算法。 
檢查迴文的演算法通常是檢查一個字串是否從左到右讀與從右到左讀是一樣的。下面是一個用Python語言實現的簡單演算法，在大多數情況下都是有效的：

def is_palindrome(s: str) -> bool:
    s = s.lower()  # 首先將字串轉換為小寫
    left, right = 0, len(s)-1  # 設定左右指標
    while left < right:
        while not s[left].isalnum() and left < right:  # 跳過非字母數字字元
            left += 1
        while not s[right].isalnum() and left < right:  # 跳過非字母數字字元
            right -= 1
        if s[left] != s[right]:  # 比較字元是否相等
            return False
        left += 1
        right -= 1
    return True

例如：
print(is_palindrome("A man, a plan, a canal, Panama!"))  #True
print(is_palindrome("race a car")) #False