Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- knakul853
- **/
- class Solution {
- public:
- vector<vector<string>> partition(string s) {
- vector<vector<string>>ans;
- vector<string>temp;
- backtrack(s , ans , 0 , temp);
- return ans;
- }
- void backtrack(string s , vector<vector<string>>&ans , int id , vector<string>temp)
- {
- if(id == s.size())
- {
- ans.push_back(temp);
- return ;
- }
- for(int i = id ; i<s.size();i++)
- {
- if(ok(s , id , i))
- {
- temp.push_back(s.substr(id , i-id+1));
- backtrack(s , ans , i+1 , temp);
- temp.pop_back();
- }
- }
- }
- bool ok(string s,int i,int j)
- {
- while(i<j)
- {
- if(s[i]!=s[j])return false;
- i++;j--;
- }
- return true;
- }
- };
Add Comment
Please, Sign In to add comment