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--;
              }


          }
      }
View Code

 

posted @ 2016-05-23 11:21  牧马人夏峥  阅读(92)  评论(0编辑  收藏  举报