136-分割回文串

给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。

返回s所有可能的回文串分割方案。

样例

给出 s = "aab",返回

[

["aa", "b"],

["a", "a", "b"]

]

标签

回溯法 深度优先搜索

思路

使用回溯和递归

code

class Solution {
public:
/**
* @param s: A string
* @return: A list of lists of string
*/
vector<vector<string>> partition(string s) {
// write your code here
int size = s.size();
if(size <= 0) {
return vector<vector<string> >();
}
vector<vector<string> > result;
vector<string> temp; partition(s, 0, temp, result); return result;
} void partition(string s, int current, vector<string> &temp, vector<vector<string> > &result) {
if(current == s.size()){
result.push_back(temp);
return;
} for(int i=current; i<s.size(); i++) {
if(isPalindrome(s, current, i)) {
temp.push_back(s.substr(current,i-current+1));
partition(s, i+1, temp, result);
temp.pop_back();
}
}
} bool isPalindrome(string s, int begin, int end) {
for(int i=begin, j=end; i<j; i++, j--) {
if(s[i] != s[j]) {
return false;
}
}
return true;
}
};

最新文章

  1. 推荐一个不错的在线制图网站---ProcessOn
  2. UITabBarButton 点击失效问题
  3. Largest BST Subtree
  4. phpstorm8.0汉化版下载
  5. org.springframework.web.servlet.PageNotFound No mapping found for HTTP request with URI [/AssetRepair/assetRepairController/test.do] in DispatcherServlet with name &#39;assetrepair&#39;
  6. python中的类型转换
  7. jsp的useBean标签使用
  8. Mongo散记--聚合(aggregation)&amp;amp; 查询(Query)
  9. Druid的简介
  10. Jmeter跨线程组传递参数
  11. 关于游览器 cookie的操作类
  12. QString 的用法
  13. python-布尔值的加法运算
  14. 【cs229-Lecture3】为什么要选择“最小二乘法”这个指标
  15. python中文件变化监控-watchdog
  16. 调整swap分区大小-Linux下安装Oracle时报swap不够解决方法
  17. spring-security权限控制详解
  18. eclipse 按装lombok与注解说明
  19. PokeCats开发者日志(八)
  20. JS replace()方法替换变量(可以对变量进行全文替换)

热门文章

  1. IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息
  2. MySQL提升课程 全面讲解MySQL架构设计-索引
  3. jquery表单属性筛选元素
  4. flexible.js在华某为手机上使用rem时,页面宽度超出手机屏幕宽度
  5. 【Nowcoder 上海五校赛】1 + 2 = 3?(斐波那契规律)
  6. date 参数(option)-d
  7. Dockerfile中npm中Error: could not get uid/gid问题的解决方法
  8. chrome debugger 调试
  9. lnmp+phpmyadmin+laravel 环境配置
  10. Linux编译移植Qt5的环境_OMAPL138平台