[leetcode]131. Palindrome Partitioning

来源:互联网 发布:淘宝只退款不退货教程 编辑:程序博客网 时间:2024/06/03 22:55

题目链接:https://leetcode.com/problems/palindrome-partitioning/#/description

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"]]


class Solution {public:    vector<vector<string>> partition(string s) {        vector<vector<string>> res;        vector<string> tmp;        getPartition(s,0,tmp,res);        return res;    }private:    void getPartition(string& s,int idx,vector<string>& tmp,vector<vector<string>>& res)    {        if(idx==s.length())        {            res.push_back(tmp);            return;        }        for(int i=idx,n=s.length();i<n;i++)        {            int l=idx,r=i;            while(l<r && s[l]==s[r])            {                l++;                r--;            }            if(l>=r)            {                tmp.push_back(s.substr(idx,i-idx+1));                getPartition(s,i+1,tmp,res);                tmp.pop_back();            }        }    }};