//我写了四种做法,如果对你有帮助,可以给我点个赞,谢谢
//1.递归2.双指针3.逆置4.栈
class Solution {
public:    
    /*
    bool judge(string str) {
        if(str.empty()) return true;
        else if(str.size()==1) return true;
        else if(str[0]!=str[str.size()-1]) return false;
        else{            
            string s1;
            for(int i=1;i<str.size()-1;i++){
                s1.push_back(str[i]);
            }
            
            return judge(s1);
        }
    }*///递归,内存超限
    /*bool judge(string str) {
        int left=0,right=str.size()-1;
        while(left<right){
            if(str[left]!=str[right])
                return false;
            left++;right--;
        }
        return true;
    }*///双指针
    /*bool judge(string str) {
        string temp=str;
        reverse(temp.begin(),temp.end());
        return str==temp;
    }//逆置*/
    bool judge(string str) {
        stack<char> st;
        for(int i=0;i<str.size();i++){
            st.push(str[i]);
        }
        string s1;
        for(int i=0;i<str.size();i++){
            s1.push_back(st.top());
            st.pop();
        }
        return s1==str;
    }//用栈做
    
};