给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: fals
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome
思路:将s赋值给back,然后back逆转back_reverse,然后比较两者是否相等。
思想很简单,但是这个调用的库是没想到的。
记录一下常用字符(串)相关 API :
isalnum:检测一个字符是否是字母或者十进制数字
isalpha:检测字符是否为字母
isdigit:检测字符是否为数字
tolower:转化为小写
s.rbegin(),s.rend():字符翻转API
class Solution {
public:
bool isPalindrome(string s) {
string back;
for(char ch:s)
{
if(isalnum(ch))
{
back += tolower(ch); //back存放字符串中每一个字符
}
}
string back_reverse (back.rbegin(), back.rend()); //back逆转赋值给back_reverse
return back_reverse == back; //比较back、back_reverse是否相等
}
};