给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 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是否相等 } };