码迷,mamicode.com
首页 > 其他好文 > 详细

Palindrome Partitioning

时间:2014-05-30 16:04:06      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

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"]
  ]
bubuko.com,布布扣
class Solution {
public:
    vector<vector<string>> partition(string s) 
    {
        vector<vector<string>> result;
        vector<string> v;
        for(int i=0;i<s.length();i++) v.push_back(" ");
        generate(s,result,v,0,0);
        return result;
    }
    bool check(const string& s,int l,int r)
    {
        while(l<r && s[l]==s[r]) 
        {
            l++;
            r--;
        }
        if(l>=r)
            return true;
        else
            return false;
    }
    void generate(string& s,vector<vector<string>>& result,vector<string>& v,int sdep,int vdep)
    {
        if(sdep==s.length())
        {
            vector<string> vnew;
            for(int i=0;i<vdep;i++)
                vnew.push_back(v[i]);
            result.push_back(vnew);
            return;
        }
        string news="";
        for(int i=sdep;i<s.length();i++)
        {
            news=news+s[i];
            if(check(s,sdep,i))
            {
                v[vdep]=news;
                generate(s,result,v,i+1,vdep+1);
            }
        }
    }
};
bubuko.com,布布扣

 

Palindrome Partitioning,布布扣,bubuko.com

Palindrome Partitioning

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/erictanghu/p/3759690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!