//我写了四种做法,如果对你有帮助,可以给我点个赞,谢谢
//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;
}//用栈做
};
//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;
}//用栈做
};