验证回文字符串(leetcode)
2019-04-28 20:43
267 查看
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: “A man, a plan, a canal: Panama”
输出: true
示例 2:
输入: “race a car”
输出: false
c++版本 class Solution { public: bool isPalindrome(string s) { if(s.size()<=0)return true; int i =0; int j=s.size()-1; while(i<j){ while(i<j && !isalnum(s[i])){ i++; } while(i<j && !isalnum(s[j])){ j--; } if(tolower(s[i++])!=tolower(s[j--])){ return false; } } return true; } };
思路:分别从字符串头尾进行验证,非数字和字母的跳过,直到验证完字符串
其中isalnum() isalpha() isdigit()函数分别为判断字符是否为数字字母、字母、数字
tolower() 和toupper()函数分别为变小写和变大写。
python版本 class Solution: def isPalindrome(self, s: str) -> bool: if (len(s)<=1):return True str1="" for char in s: if char.isalnum(): str1+=char.lower() return str1==str1[::-1]
思路:取出字符串中的数字和字母再进行验证
其中python中.lower()和.upper()为将字符串变小写和变大写函数,.isdigit()、.isalpha()和.isalnum()函数均为判断字符串的。
相关文章推荐
- LeetCode:验证回文字符串(Python版本)
- golang_算法: leetcode_字符串05-验证回文字符串
- LeetCode 680. Valid Palindrome II (验证回文字符串 Ⅱ)
- LeetCode 680.验证回文字符串 Ⅱ
- leetcode-验证回文字符串
- LeetCode 680:验证回文字符串
- LeetCode-探索-初级-字符串-验证回文字符串-java
- [LeetCode] 680. Valid Palindrome II 验证回文字符串 II
- LeetCode 125. Valid Palindorme (验证回文字符串)
- [LeetCode] Valid Palindrome II 验证回文字符串之二
- 验证回文串和验证回文字符串Ⅱ
- [LeetCode] 9. Palindrome Number 验证回文数字
- [LeetCode] Palindrome Number 验证回文数字
- 【leetcode】对撞指针应用之回文字符串判断(忽略大小写,以及出数字外其他字符)
- leetcode 680. Valid Palindrome II 去除一个字符的回文字符串判断 + 双指针
- leetcode125---Valid Palindrome(回文字符串)
- 验证回文字符串
- leetcode最长回文字符串_动态规划
- [LintCode] Valid Palindrome 验证回文字符串
- Longest Palindromic Substring 在一个字符串里找最长回文子串@LeetCode