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

Valid Palindrome

时间:2015-03-31 12:54:59      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:string

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.

Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.

For the purpose of this problem, we define empty string as valid palindrome.

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

bool isValid(char c){
	if(c >= 'a' && c <= 'z') return true;
	if(c >= '0' && c <= '9') return true;
	return false;
}
bool isPalindrome(string s) {
	if (s.empty())
		return true;
	transform(s.begin(), s.end(), s.begin(), ::tolower); 
	int first = 0;
	int last = s.size()-1;
	while (first<=last)
	{
		while (!isValid(s[first])){
			++first;
			if (first>=last)
				return true;
		}
		while (!isValid(s[last])){
			--last;
			if (first>=last)
				return true;
		}
		if (s[first]==s[last]){
			++first;
			--last;
		}
		else
			return false;
	}
	return true;
}


 

Valid Palindrome

标签:string

原文地址:http://blog.csdn.net/li_chihang/article/details/44775803

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