分析
dfs()整个字符串即可。
C++ 代码
class Solution {
public:
int n;
vector<vector<string>> ans;
bool check(string s) //判断当前字符串是否为回文串
{
return s==string(s.rbegin(),s.rend());
}
void dfs(int u,vector<string> &v,string s) //当前下标 当前字符串数组 字符串s
{
if(u==n){
ans.push_back(v);
return ;
}
string temp;
for(int i=u;i<n;i++)
{
temp+=s[i];
if(check(temp))
{
v.push_back(temp);
dfs(i+1,v,s);
v.pop_back();
}
}
}
vector<vector<string>> partition(string s) {
n=s.size();
vector<string> v;
dfs(0,v,s);
return ans;
}
};
这篇博客介绍了如何利用C++实现深度优先搜索(DFS)来寻找一个字符串的所有回文子串。代码中定义了一个`Solution`类,包含`check`函数用于检查一个字符串是否为回文,以及`dfs`函数进行递归搜索。`partition`函数初始化搜索过程,最终返回所有回文子串的集合。
540

被折叠的 条评论
为什么被折叠?



