标签:2021.03 Partitioning Palindrome string int back vector ans path
Problem
Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s.
A palindrome string is a string that reads the same backward as forward.
Constraints:
- 1 <= s.length <= 16
- s contains only lowercase English letters.
Example1
Input: s = “aab”
Output: [[“a”,“a”,“b”],[“aa”,“b”]]
Example2
Input: s = “a”
Output: [[“a”]]
Solution
class Solution {
public:
vector<vector<bool>> f;
vector<vector<string>> ans;
vector<string> path;
vector<vector<string>> partition(string s) {
int n = s.size();
f = vector<vector<bool>>(n, vector<bool>(n));
for (int j = 0; j < n; j ++ )
for (int i = 0; i <= j; i ++ )
if (i == j) f[i][j] = true;
else if (s[i] == s[j]) {
cout<<i<<" "<<j<<endl;
if (i + 1 > j - 1 || f[i + 1][j - 1]) f[i][j] = true;
}
dfs(s, 0);
return ans;
}
void dfs(string& s, int u) {
if (u == s.size()) ans.push_back(path);
else {
for (int i = u; i < s.size(); i ++ )
if (f[u][i]) {
path.push_back(s.substr(u, i - u + 1));
dfs(s, i + 1);
path.pop_back();
}
}
}
};
标签:2021.03,Partitioning,Palindrome,string,int,back,vector,ans,path 来源: https://blog.csdn.net/sjt091110317/article/details/114477484
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。