1. 程式人生 > >【LeetCode】125. 驗證迴文串

【LeetCode】125. 驗證迴文串

題目連結https://leetcode-cn.com/problems/valid-palindrome/description/

題目描述

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

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

示例

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

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

解決方法

用雙指標

class Solution {
public:
    bool isPalindrome(string s) {
        //用雙指標
if (s.size()==0) return true; transform(s.begin(),s.end(),s.begin(),::tolower);//將字串轉成小寫 int left=0,right=s.size()-1; while(left<right){ if (!(isdigit(s[left]) || islower(s[left]))) left++; if (!(isdigit(s[right]) || islower(s[right]))) right--; if
((isdigit(s[left]) || islower(s[left])) && (isdigit(s[right]) || islower(s[right]))){ if (s[left]!=s[right]) return false; else{ left++;right--; } } } return true; }
};