首页 > 学院 > 开发设计 > 正文

131. Palindrome Partitioning

2019-11-08 03:21:04
字体:
来源:转载
供稿:网友

Dfs求出每一个回文就ok了,2刷自己刷代买练手

class Solution {public: bool isok(string s, int start, int end){ while(start <= end){ if(s[start++] != s[end--]) return false; } return true; } void dfs(int index, string s, vector<vector<string>>& ve, vector<string>& vec){ if(index == s.size()){ ve.push_back(vec); return ; } for(int i = index; i < s.size(); ++ i){ if(isok(s, index, i)){ vec.push_back(s.substr(index, i - index + 1)); dfs(i + 1, s, ve, vec); vec.pop_back(); } } } vector<vector<string>> partition(string s) { vector<vector<string>>ve; if(s.size() == 0) return ve; vector<string>vec; dfs(0, s, ve, vec); return ve; }};
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表