给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true
示例 2:
输入: "race a car" 输出: false
思路:将每个字符转换为小写字母和数字存进数组,将数组中的头尾进行比较是否相同
class Solution { public: bool isPalindrome(string s) { if (s.length() == 0) return true; vector<char>vec; for(int i = 0; i < s.length(); i++){ char tmp = s[i]; if (tmp >= 'A' && tmp <= 'Z') tmp = tmp+32; if(tmp >= 'a' && tmp <= 'z' || tmp >= '0' && tmp <= '9'){ vec.push_back(tmp); } } for(int i = 0; i < vec.size()/2; i++){ if(vec[i] != vec[vec.size()-i-1]) return false; } return true; } };