LeetCode131.分割回文串
阿新 • • 發佈:2018-11-11
leetcode 131.分割回文串(dfs + 回溯)
class Solution { public: //131.分割回文串 bool isPali(string s) { for (int i = 0; i < s.length() / 2; i++) { if (s[i] != s[s.length() - i - 1]) return false; } return true; } void dfs(vector<vector<string>> &ans, vector<string> &tmp, int n, string s) { if (n == s.length()) { ans.push_back(tmp); return; } for (int i = n; i < s.length(); i++) { if (isPali(s.substr(n, i - n + 1))) { tmp.push_back(s.substr(n, i - n + 1)); dfs(ans, tmp, i + 1, s); tmp.pop_back(); } } } vector<vector<string>> partition(string s) { vector<vector<string>> ans; vector<string> tmp; dfs(ans, tmp, 0, s); return ans; } };