解题思路:
这个简单的方法就是,用回溯,一个个的遍历。每一次从下一个遍历之前,都需要判断当前子串是不是回文串,这里的回文串检查可以用动态规划储存起来,加快速度:
dp[i][j]是不是回文串,判断s[i] == s[j] && ( j - i < 3 || dp[i+1][j-1])
class Solution {
public:
bool IsHUIWEN(string s)
{
int l = 0;
int r = s.size()-1;
while(l<r)
{
if(s[l++]!=s[r--])
return false;
}
return true;
}
void backthrough(string s,int cur,vector<string> sub,
vector<vector<string>> &res,
vector<vector<int>> &dp)
{
if(cur>=s.size())
{
res.push_back(sub);
return ;
}
for(int i = cur;i<