1. 程式人生 > >LeetCode 驗證迴文字串

LeetCode 驗證迴文字串

驗證迴文字串

給定一個字串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的迴文串。

示例 1:

輸入: “A man, a plan, a canal: Panama”
輸出: true
示例 2:

輸入: “race a car”
輸出: false

解題思路:
資料清洗過後進行字串奇偶判定,從左右正確位置分別向左和向右尋找。

 char isValid(char c)
    {
        if(c>='A'&&c<='Z' || c>='0'&&c<='9'
) return c; else if(c>='a'&&c<='z') return c-32; else return 0; } bool isPalindrome(string s) { string str; for(int i=0;i<s.length();++i) if(isValid(s[i])) str+=isValid(s[i]); if
(str.empty()) return true; int size=str.length(); int i,j; if(size%2) { i=j=size/2; } else { i=size/2-1; j=size/2; } while(i>=0&&j<=size-1) { if(str[i]==str
[j]) { --i;++j;continue; } else break; } if(i==-1&&j==size) return true; return false; }