`

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.

 

class Solution {
public:
    bool isPalindrome(string s) {
        
        string::iterator it = s.begin();
        while(it != s.end()) {
            if((*it >= 'a' && *it <= 'z') 
            || (*it >= 'A' && *it <= 'Z') 
            || (*it >= '1' && *it <= '9')) it++;
            else it = s.erase(it);
        }
        
        int n = s.size();
        
        if(n == 0) return true;
        if(n == 1) return true;
        
        for(int i = 0; i <= n/2; ++i) {
            if(down(s[i]) != down(s[n-i-1])) return false;
        }
        
        return true;
    }
    
    char down(char c) {
        if(c <= 'Z') return c;
        else return c - ('a' - 'A');
    }
};

 

 

欢迎关注微信公众号——计算机视觉:

 

0
2
分享到:
评论

相关推荐

    【Lintcode】415. Valid Palindrome

    https://www.lintcode.com/problem/valid-palindrome/description 给定一个字符串,只考虑字母和数字,字母忽略大小写区别,忽略所有其他字符,问该字符串是否回文。直接对撞双指针,左指针持续右移直到遇到字母或...

    python-leetcode题解之125-Valid-Palindrome

    python python_leetcode题解之125_Valid_Palindrome

    js-leetcode题解之125-valid-palindrome.js

    javascript js_leetcode题解之125-valid-palindrome.js

    10个最常见的Java算法.doc

    合并排序数组, Valid Parentheses, 实现 strStr(), Set Matrix Zeroes, 搜索插入位置, Longest Consecutive Sequence, Valid Palindrome, 螺旋矩阵, 搜索一个二维矩阵, 旋转图像, 三角形, Distinct Subsequences ...

    LeetCode 刷题笔记 with Java.zip

    "Valid Palindrome"(有效的回文串)则需要理解双指针法和忽略特定字符的策略。 最后的暗黑版《LeetCode 刷题笔记 with Java 51-100(暗黑版).pdf》可能包含了一些高级解法或者优化后的实现,帮助开发者提升代码...

    python-leetcode面试题解之第125题验证回文串-题解.zip

    本题解集中关注的是LeetCode第125题——"验证回文串"(Valid Palindrome)。这道题目是面试中常见的算法问题,考察了程序员对字符串处理和双指针技巧的掌握。 回文串是指一个字符串从前往后读和从后往前读是一样的...

    leetcode刷题列表

    例如,“Wildcard Matching”和“Valid Palindrome II”这类题目要求考虑通配符或特殊字符的存在,增加了问题的复杂性。在处理这类问题时,了解API的使用、忽略字符大小写和字符编码差异是十分重要的。 最后,树...

    LeetCode_java_leetcode_刷题_

    3. **字符串处理**:Java中的String类是常考主题,如"Valid Palindrome"要求判断一个字符串是否为回文,这涉及字符串的反转和比较操作。 4. **排序与查找**:快速排序、归并排序、二分查找等经典算法经常出现在...

    java-leetcode面试题解双指针之第125题验证回文串.zip

    其中,第125题是“验证回文串”(Valid Palindrome),这是一道关于字符串处理的经典问题,尤其适合考察应聘者的双指针技巧。双指针是一种常见的算法思想,它在解决很多数组或字符串问题时能展现出高效性。 **问题...

    常见算法题答案及解析

    4. Valid Palindrome:判断一个字符串是否为回文字符串,涉及到字符串的遍历和比较。 5. Implement strStr():实现strStr()函数,即在文本中查找模式串的出现,可以使用KMP算法。 6. Reverse Words in a String:...

    uber leetcode

    #### 三、Valid Palindrome - **知识点:**双指针技术。 - **题目描述:**给定一个字符串,判断它是不是回文串。只考虑字母和数字字符,可以忽略字母的大小写。 - **应用场景:**字符串处理的基础问题,广泛应用于...

    Leetcode book刷题必备

    4. Valid Palindrome:判断一个字符串是否是回文,忽略大小写和非字母数字字符。 5. Implement strStr():实现字符串查找功能,返回子字符串在字符串中的起始索引。 6. Reverse Words in a String:翻转字符串中的...

    Leetcode 题解.pdf

    例如 Leetcode 的 680 题 Valid Palindrome II(Easy),我们可以使用双指针来判断一个字符串是否为回文字符串。 在这个题目中,我们可以使用双指针指向字符串的头尾两个元素,一个指针从头向尾遍历,一个指针从尾...

    CleanCodeHandbook_v1.0.3

    - Valid Palindrome(验证回文串) - Implement strStr()(实现 strStr() 函数) - Reverse Words in a String(字符串中的单词翻转) - String to Integer (atoi)(字符串转换整数) - Longest Substring ...

    小象学院2020 刷题班 3.2-4.171

    1. **验证回文串**(Valid Palindrome) - 知识点:字符串处理,双指针法 - 解题思路:通过两个指针,一个从左向右,一个从右向左,比较字符是否相等。如果遇到不相等的字符,可以通过忽略大小写和非字母数字字符...

    leetcode浇花-LCSolutions:我的力扣解决方案

    Palindrome Number #0035 - Search Insert Position #0058 - Length of Last Word #0066 - Plus One #0083 - Remove Duplicates from Sorted List #0118 - Pascal's Triangle #0121 - Best Time to Buy and Sell ...

    算法刷题笔记leetcode/lintcode

    - Valid Palindrome(回文字符串验证) - Longest Palindromic Substring(最长回文子串) - Space Replacement(URL化) - Wildcard Matching(通配符匹配) - Length of Last Word(最后一个单词的长度) - ...

    LeetCode最全代码

    ...The number of questions is increasing recently. Here is the classification of all `468` questions. ...I'll keep updating for full summary and better solutions....|-----|---------------- | --------------- |...

    資料結構與演算法 leetcode, lintcode 題解

    - **有效回文串(Valid Palindrome)** - 判斷字符串是否為回文串。 - 忽略大小寫與非字母數字字符。 - **最長回文子串(Longest Palindromic Substring)** - 中心擴張法。 - 最長回文子串的求解策略。 - **空格...

Global site tag (gtag.js) - Google Analytics