palindrome-partitioning leetcode C++

mac2022-06-30  94

Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

For example, given s ="aab", Return

[ ["aa","b"], ["a","a","b"] ]

C++

class Solution { public: vector<vector<string>> partition(string s){ vector<vector<string>> res; vector<string> out; partitionDFS(s,0,out,res); return res; } void partitionDFS(string s, int start, vector<string> &out, vector<vector<string>> &res) { if (start == s.size()) { res.push_back(out); return; } for (int i = start; i < s.size(); ++i) { if (isPalindrome(s, start, i)) { out.push_back(s.substr(start, i - start + 1)); partitionDFS(s, i + 1, out, res); out.pop_back(); } } } bool isPalindrome(string s, int start, int end) { while (start < end) { if (s[start] != s[end]) return false; ++start; --end; } return true; } };

 

转载于:https://www.cnblogs.com/vercont/p/10210268.html

最新回复(0)