1. 程式人生 > >LeetCode Valid Palindrome(驗證迴文字串)

LeetCode Valid Palindrome(驗證迴文字串)

題目:

給定一個字串,判斷其中包含數字和字母的部分是否是迴文字串(忽略大小寫),即判斷該字串是不是正向和反向讀取的結果一致。

解題思路:

本題的解題方法比較暴力直接,先遍歷一遍字串,將字串中的所有非數字和字母的部分刪除,並將所有的大寫字母轉為小寫字母,再設定兩個指標,分別從首尾開始讀取字串,判斷首尾指標讀取的字元是否一致,一致則首尾指標同時向中間移動一個單位繼續讀取,否則中斷迴圈。

解題程式碼(python):

class Solution(object):
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s = s.lower()
        character = "abcdefghijklmnopqrstuvwxyz"
        num = "0123456789"
        final = []
        for i in s:
            if i in character or i in num:
                final.append(i)
            else:
                continue
        i = 0
        j = len(final)-1
        flag = 0
        while(j>i):
            if final[i]==final[j]:
                i=i+1
                j=j-1
            else:
                flag=1
                break
        if flag==1:
            return False
        else:
            return True