LeetCode131.分割回文串

 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;
	}
};

猜你喜欢

转载自blog.csdn.net/Gentlemanman/article/details/83687298
今日推荐