分割回文串

📅 2026/7/25 13:37:11
分割回文串
其实切割问题类似组合问题。例如对于字符串abcdef组合问题选取一个a之后在bcdef中再去选取第二个选取b之后在cdef中再选取第三个.....。切割问题切割一个a之后在bcdef中再去切割第二段切割b之后在cdef中再切割第三段.....。class Solution { public: vectorvectorstringres; vectorstringpath; bool Ispartition(string s,int index,int over){ while(indexover){ if(s[index]!s[over])return false; index; over--; } return true; }//判断是不是回文串 void backtracking(string s,int index){ if(indexs.size()){ res.push_back(path); return; } for(int iindex;is.size();i){ if(Ispartition(s,index,i)){ string str s.substr(index, i - index 1);//从index向后截取i到index的字符。i一次就多截一位 path.push_back(str); } else { // 如果不是则直接跳过 continue; } backtracking(s,i1);//别写成index加1了 path.pop_back(); } } vectorvectorstring partition(string s) { backtracking(s,0); return res; } };