很简单的判断是否是回文的题,
英文: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;
}