码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode 125] Valid Palindrome

时间:2015-03-02 23:51:02      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

代码:

 1 class Solution {
 2 public:
 3     bool isPalindrome(string s) {
 4         transform(s.begin(), s.end(), s.begin(), ::tolower);
 5         auto left = s.begin();
 6         auto right = prev(s.end());
 7         while(left < right) {
 8             if(!::isalnum(*left))
 9                 ++left;
10             else if(!::isalnum(*right))
11                 --right;
12             else if(*left != *right)
13                 return false;
14             else{
15                 ++left;
16                 --right;
17             }
18         }
19         return true;
20     }
21 };

 

杂记:

1. transform

std::transform applies the given function to a range and stores the result in another range, beginning at d_first.

例如代码

1 transform(s.begin(), s.end(), s.begin(), ::tolower);

把字符串的所有内容转换为小写

2. 其他方法一

正则表达式替换其他非字母表字符,然后判断

3. 其他方法二

正则替换后反转,判断是否相等

[LeetCode 125] Valid Palindrome

标签:

原文地址:http://www.cnblogs.com/Azurewing/p/4309940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!