[leetcode]Palindrome Partitioning

来源:互联网 发布:emacs for mac 编辑:程序博客网 时间:2024/06/18 09:32

题目描述:

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>> result;        vector<string> part;        dfs(result,part,s,0);        return result;    }    void dfs(vector<vector<string>> &result,vector<string> &part,string &s,int start){        if(start==s.length()){            result.push_back(part);            return;        }        for(int i=start;i<s.length();i++){            if(isPalindrome(s,start,i)){                part.push_back(s.substr(start,i-start+1));                dfs(result,part,s,i+1);                part.pop_back();            }        }    }    bool isPalindrome(string &s,int start,int end){        while(start<end){            if(s[start]!=s[end])return false;            start++;            end--;        }        return true;    }};


0 0
原创粉丝点击