1. 程式人生 > >【初級算法】16. 驗證回文字符串

【初級算法】16. 驗證回文字符串

回文串 定義 man art pla bool 回文字符串 驗證 和數

題目:

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

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

示例 1:

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

輸入: "race a car"
輸出: false

1.解題思路:

本題比較簡單,直接取字符串的前後字母進行比對,如果相等則前進,否則返回錯誤。

class Solution {
public:
    bool isPalindrome(string s) {
        int len = s.size();
        
int start = 0; int end = len-1; while(start < end){ char first,second; /*get the fisrt char*/ while(start <= end){ if((s[start] >= a && s[start] <= z)|| (s[start] >= A && s[start] <=
Z)|| (s[start] >= 0 && s[start] <= 9)){ first = s[start]; if(s[start] >= A && s[start] <= Z){ first = first-A+a; } break; }
else{ start++; } } /*get the second char*/ while(start <= end){ if((s[end] >= a && s[end] <= z)|| (s[end] >= A && s[end] <= Z)|| (s[end] >= 0 && s[end] <= 9)){ second = s[end]; if(second <= Z&&second>=A){ second = second-A+a; } break; }else{ end--; } } if(start > end){ break; } if(first == second){ start++; end--; }else{ return false; } } return true; } };

【初級算法】16. 驗證回文字符串