和大神们学习每天一题(leetcode)-Palindrome Partitioning

来源:互联网 发布:淘宝怎么认证卖家 编辑:程序博客网 时间:2024/06/05 14:43

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"]  ]
功能测试用例:"aab";"aabbaacdc"

特殊测试用例:"a","aa","aaa"

class Solution {public:vector<vector<string>> partition(string s) {vector<vector<string>> vvstrResult;if (s.length() == 0)return vvstrResult;vector<vector<string>> vvstrTemp;long lBegin, lEnd;for (unsigned long ulTemp = 0; ulTemp < s.length(); ulTemp++){lBegin = 0;lEnd = ulTemp;while (lBegin <= lEnd){if (s[lBegin] != s[lEnd])break;lBegin++;lEnd--;}if (lBegin > lEnd){string strPalin(s, 0, ulTemp + 1);string strRemain(s, ulTemp + 1, s.length() - ulTemp - 1);vvstrTemp = partition(strRemain);if (vvstrTemp.size() == 0){vector<string> vstrMiddle(1,strPalin);vvstrResult.push_back(vstrMiddle);}else{for (unsigned long ulIndex = 0; ulIndex < vvstrTemp.size(); ulIndex++){vector<string>::iterator ItePos = vvstrTemp[ulIndex].begin();vvstrTemp[ulIndex].insert(ItePos, strPalin);vvstrResult.push_back(vvstrTemp[ulIndex]);}}}}return vvstrResult;}};



0 0
原创粉丝点击