LeetCode(125)题解--Valid Palindrome

https://leetcode.com/problems/valid-palindrome/

题目:

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.

Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.

For the purpose of this problem, we define empty string as valid palindrome.

思路:

easy.

AC代码:

 1 class Solution {
 2 public:
 3     bool isPalindrome(string s) {
 4         int a=0,b=s.size()-1;
 5         while(a<b){
 6             if(!((s[a]>='a'&&s[a]<='z')||(s[a]>='A'&&s[a]<='Z')||(s[a]>='0'&&s[a]<='9'))){
 7                 a++;
 8                 continue;
 9             }
10             if(!((s[b]>='a'&&s[b]<='z')||(s[b]>='A'&&s[b]<='Z')||(s[b]>='0'&&s[b]<='9'))){
11                 b--;
12                 continue;
13             }
14             if((s[a]>='a'&&s[a]<='z')){
15                 if((s[a]!=s[b])&&(s[a]+'A'-'a'!=s[b])){
16                     return false;
17                 }
18             }
19             else if((s[a]>='A'&&s[a]<='Z')){
20                 if((s[a]!=s[b])&&(s[a]!=s[b]+'A'-'a')){
21                     return false;
22                 }
23             }
24             else{
25                 if(s[a]!=s[b]){
26                     return false;
27                 }
28             }
29             a++;
30             b--;
31         }
32         return true;
33     }
34 };
原文地址:https://www.cnblogs.com/aezero/p/4821729.html