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'); } };
欢迎关注微信公众号——计算机视觉:
相关推荐
https://www.lintcode.com/problem/valid-palindrome/description 给定一个字符串,只考虑字母和数字,字母忽略大小写区别,忽略所有其他字符,问该字符串是否回文。直接对撞双指针,左指针持续右移直到遇到字母或...
python python_leetcode题解之125_Valid_Palindrome
javascript js_leetcode题解之125-valid-palindrome.js
合并排序数组, Valid Parentheses, 实现 strStr(), Set Matrix Zeroes, 搜索插入位置, Longest Consecutive Sequence, Valid Palindrome, 螺旋矩阵, 搜索一个二维矩阵, 旋转图像, 三角形, Distinct Subsequences ...
"Valid Palindrome"(有效的回文串)则需要理解双指针法和忽略特定字符的策略。 最后的暗黑版《LeetCode 刷题笔记 with Java 51-100(暗黑版).pdf》可能包含了一些高级解法或者优化后的实现,帮助开发者提升代码...
本题解集中关注的是LeetCode第125题——"验证回文串"(Valid Palindrome)。这道题目是面试中常见的算法问题,考察了程序员对字符串处理和双指针技巧的掌握。 回文串是指一个字符串从前往后读和从后往前读是一样的...
例如,“Wildcard Matching”和“Valid Palindrome II”这类题目要求考虑通配符或特殊字符的存在,增加了问题的复杂性。在处理这类问题时,了解API的使用、忽略字符大小写和字符编码差异是十分重要的。 最后,树...
3. **字符串处理**:Java中的String类是常考主题,如"Valid Palindrome"要求判断一个字符串是否为回文,这涉及字符串的反转和比较操作。 4. **排序与查找**:快速排序、归并排序、二分查找等经典算法经常出现在...
其中,第125题是“验证回文串”(Valid Palindrome),这是一道关于字符串处理的经典问题,尤其适合考察应聘者的双指针技巧。双指针是一种常见的算法思想,它在解决很多数组或字符串问题时能展现出高效性。 **问题...
4. Valid Palindrome:判断一个字符串是否为回文字符串,涉及到字符串的遍历和比较。 5. Implement strStr():实现strStr()函数,即在文本中查找模式串的出现,可以使用KMP算法。 6. Reverse Words in a String:...
#### 三、Valid Palindrome - **知识点:**双指针技术。 - **题目描述:**给定一个字符串,判断它是不是回文串。只考虑字母和数字字符,可以忽略字母的大小写。 - **应用场景:**字符串处理的基础问题,广泛应用于...
4. Valid Palindrome:判断一个字符串是否是回文,忽略大小写和非字母数字字符。 5. Implement strStr():实现字符串查找功能,返回子字符串在字符串中的起始索引。 6. Reverse Words in a String:翻转字符串中的...
例如 Leetcode 的 680 题 Valid Palindrome II(Easy),我们可以使用双指针来判断一个字符串是否为回文字符串。 在这个题目中,我们可以使用双指针指向字符串的头尾两个元素,一个指针从头向尾遍历,一个指针从尾...
- Valid Palindrome(验证回文串) - Implement strStr()(实现 strStr() 函数) - Reverse Words in a String(字符串中的单词翻转) - String to Integer (atoi)(字符串转换整数) - Longest Substring ...
1. **验证回文串**(Valid Palindrome) - 知识点:字符串处理,双指针法 - 解题思路:通过两个指针,一个从左向右,一个从右向左,比较字符是否相等。如果遇到不相等的字符,可以通过忽略大小写和非字母数字字符...
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 ...
- Valid Palindrome(回文字符串验证) - Longest Palindromic Substring(最长回文子串) - Space Replacement(URL化) - Wildcard Matching(通配符匹配) - Length of Last Word(最后一个单词的长度) - ...
...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....|-----|---------------- | --------------- |...
- **有效回文串(Valid Palindrome)** - 判斷字符串是否為回文串。 - 忽略大小寫與非字母數字字符。 - **最長回文子串(Longest Palindromic Substring)** - 中心擴張法。 - 最長回文子串的求解策略。 - **空格...