LeetCode 125. Valid Palindrome

题目描述

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

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

Example 1:

Input: "A man, a plan, a canal: Panama"
Output: true

Example 2:

Input: "race a car"
Output: false

题目思路

  • 思路一、按照题目的意思,定义两个指针 ( 从后往前,从前往后 ),碰到非大小写字母或数字则忽略
class Solution {
public:
    bool isPalindrome(string s) {
        int i = 0;
        int j = s.size() - 1;
        
        while( i < j ){
            while(i < j && ! fab(s[i])) i += 1;
                
            while(i < j && ! fab(s[j])) j -= 1;
            
            if(core(s[i], s[j])){
                i += 1;
                j -= 1;
            }
            else{
                return false;
            }
        }
        return true;
    }
    
    bool fab(char c){
        if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') ){
            return true;
        }
        return false;
    }
    
    bool core(char a, char b){
        if(a == b) return true;
        // a 小写字母
        if(a >= 'a' && a <= 'z'){
            if(a -32 == b){
                return true;
            }
        }
        
        // a 大写字母
        if(a >= 'A' && a <= 'Z'){
            if(a +32 == b){
                return true;
            }
        }
        return false;
    }
};

总结展望

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 人生没有真正的绝望。树在秋天放下了落叶,心很疼,可是整个冬天,它让心在平静中积蓄力量。春天一到,芳华依然。瀑布的壮...
    Pinweigudu阅读 877评论 0 1
  • 杭州的冬天,没有让我感到半分温暖
    菜鸟之王d阅读 923评论 0 1
  • 三月份的阳光虽不如六月炽烈,也不似十二月的温柔,却散发出吸引人的味道,一如那片满是青草的绿地上传出的温暖与欢声笑语...
    吾时一阅读 3,757评论 0 2
  • 总是坐檐下,皱纹思牵挂。 家人何时归,翘首望晚霞。
    龙华之韵阅读 1,501评论 0 2
  • 周五老师说了要举行一次写字大赛,但是这个写字大赛是有规则的,首先你用的这张纸上面不能有任何的红字,而...
    子细阅读 1,501评论 0 0