leetcode 之Valid Palindrome(26)
现在开始进入字符串系列。
判断回文串的。首尾各定义一个指针,然后相比较。难点在于如何提出非字母数字的字符。
bool isValidPalind(string s) { //转为小写,注意这个函数的用法 transform(s.begin(), s.end(), s.begin(), ::towlower); auto left = s.begin(), right = prev(s.end()); while (left < right) { //首先判断是否是数字或字母 if (!::isalnum(*left))++left; else if (!::isalnum(*right))right--; else if (*left != *right)return false; else { left++; right--; } } }