leetcode 判断有效字符串是回文串Valid Palindrome

来源:互联网 发布:bp神经网络算法c语言 编辑:程序博客网 时间:2024/05/07 16:07
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.

注意空格和一个字符的也是回文。

思路很明显:先去掉不是有效字符,然后从前面和后面遍历,一旦有不一样的即可判断不是回文:

class Solution {public:   void makestring(string &s){int l= s.length();int k=0;int i=0;while(i<l){  if(s[i]>='0'&&s[i]<='9')s[i-k]=s[i];  else if(s[i]>='a'&&s[i]<='z')s[i-k]=s[i];else if(s[i]>='A'&&s[i]<='Z')s[i-k]=s[i]-'A'+'a';else k++;i++;}s=s.substr(0,l-k);}//去掉非法字符bool isPalindrome(string s) { makestring(s); int l=s.length(); if(l<=1)return 1; int i,j; for(i=0,j=l-1;i<=j;i++,j--) if(s[i]!=s[j])return 0; return 1;}};


0 0
原创粉丝点击