Palindrome Partitioning

来源:互联网 发布:mysql 存储过程 规范 编辑:程序博客网 时间:2024/06/07 13:13

1.问题描述

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

2.解答

class Solution {public:    vector<vector<string>> partition(string s)     {        vector<string> temp;        partition_(s,temp,0);        return res;    }    void partition_(string s,vector<string> temp,int begin)     {        if(begin>=s.size())        {            res.push_back(temp);            return ;        }        vector<int> index;        index=part(s,begin);        for(int i=0;i<index.size();i++)        {            string temp1=s.substr(begin,index[i]-begin+1);            temp.push_back(temp1);            partition_(s,temp,index[i]+1);            temp.pop_back();        }            }    vector<int> part(string s,int begin)    {        vector<int> res;        if(begin<s.size())        {            int end=begin;            while(end<s.size())            {                int i=begin,j=end;                 while(i<=j)                 {                                        if(s[i]!=s[j])                        break;                    i++;                    j--;                 }                 if(i>j) res.push_back(end);                 end++;            }        }        return res;    }private:    vector<vector<string>> res;};


0 0
原创粉丝点击