[LeetCode]Palindrome Partitioning

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 {

private:

    vector<vector<string> > res;

public:

    void DFS(string s, vector<string> &ans)

    {

        if(s.size()<1) 

        {

            res.push_back(ans);

            return;

        }

        for(int i=0;i<s.size();i++)

        {

            int start=0;

            int end=i;

            while(start<end)

            {

                if(s[start]==s[end])

                {

                  start++;

                  end--;

                }

                 else break;

            }

            if(start>=end)

            {

                ans.push_back(s.substr(0,i+1));

                DFS(s.substr(i+1),ans);

                ans.pop_back();

            }

        }

    }

    vector<vector<string>> partition(string s) {

        res.clear();

        vector<string> ans;

        DFS(s,ans);

        return res;

    }

};

  

你可能感兴趣的:(partition)