这个方法有问题,这是计算所有子串组成的所有回文子串;而不是所有分割的回文子串;
class Solution { public: vector<vector<string>> partition(string s) { vector<vector<string>> res={{}}; for(int i=0;i<s.length();i++){ string si=""; si.push_back(s[i]); res[0].push_back(si); merge(s,si,res,i-1,i+1); } return res; } void merge(string s,string cur,vector<vector<string>>& res,int start,int end){ if(start<0 || end>=s.length()) return; if(s[start]!=s[end]) return; cur=s[start]+cur+s[end]; res[0].push_back(cur); merge(s,cur,res,start-1,end+1); } };