首页 > 代码库 > Valid Palindrome
Valid Palindrome
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.
C++代码如下:
#include<iostream>#include<cctype>#include<string>using namespace std;class Solution {public: bool isPalindrome(string s) { int i=0; int j=s.length()-1; while(i<=j) { if(isalnum(s[i])&&isalnum(s[j])) { if(isalpha(s[i])) s[i]=tolower(s[i]); if(isalpha(s[j])) s[j]=tolower(s[j]); if(s[i]==s[j]) { i++; j--; } else break; } else if(isalnum(s[i])) { j--; } else if(isalnum(s[j])) { i++; } else { i++; j--; } } if(i>j) return true; else return false; }};int main(){ string s="A man, a plan, a canal: Panama"; Solution ss; if(ss.isPalindrome(s)) cout<<" s is a palindrome."<<endl; else cout<<" s is not a palindrome."<<endl;}
运行结果:
Valid Palindrome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。