很简单的判断是否是回文的题,
英文:palindrome表示回文
可以通过递归的方法,也可以通过直接循环的方法判断。
一、递归(不知道为什么内存超了)
bool is_palindrome(string s,int i,int j){
if(s[i]!=s[j])return false;
if(i>=j)return true;
return is_palindrome(s,i+1,j-1);
}
bool isPalindrome(string s){
if(s.size()==0)return true;
string tmp;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9' ||s[i]>='a'&&s[i]<='z' ||s[i]>='A'&&s[i]<='Z'){
if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a';
tmp+=s[i];
}
}
return is_palindrome(tmp,0,tmp.size()-1);
}二、循环
bool isPalindrome(string s){
if(s.size()==0)return true;
string tmp;
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'||s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){
if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a';
tmp+=s[i];
}
}
for(int i=0;i<tmp.size()/2;i++){
if(tmp[i]!=tmp[tmp.size()-1-i])
return false;
}
return true;
}


京公网安备 11010502036488号