回文字符串就是从前向后看和从后向前看都是一样的字符串。
思路1:递归解法把大问题一步一步分解为小问题
问题f(“abccba”)= 第一个字符和最后一个字符相同 && f(“bccb”)
思路2:全部压入栈。再依次弹出时和原字符串从头到脚依次比较,如果任何位置的两个比较的字符串都相同,那么字符串就是回文,否则就不是。
递归解法1
#include<iostream>
using namespace std;
bool ish(string s){
if(s.size()<=1) return true;
return s[0]==s[s.length()-1]&&ish(s.substr(1,s.size()-2));
}
int main() {
string s("abcddcba");