Palindrome Partitioning
2015-06-11 11:30
246 查看
正常dfs
public class Solution { public ArrayList<ArrayList<String>> partition(String s) { ArrayList<ArrayList<String>> res = new ArrayList<ArrayList<String>>(); if(s==null||s.length()==0) return res; ArrayList<String> item = new ArrayList<String>(); dfs(s, 0, item, res); return res; } private void dfs(String s, int start, ArrayList<String> item , ArrayList<ArrayList<String>> res ){ if(start==s.length()){ res.add(new ArrayList<String>(item)); return; } for(int i=start;i<s.length();i++){ String tmp = s.substring(start,i+1); if(isPalindrome(tmp)){ item.add(tmp); dfs(s,i+1,item,res); item.remove(item.size()-1); } } } private boolean isPalindrome(String t){ if(t==null||t.length()<2) return true; int low=0, high=t.length()-1; while(low<high){ if(t.charAt(low)!=t.charAt(high)) return false; low++; high--; } return true; } }
相关文章推荐
- Debian设置root登录&root自动登录
- jQuery使用drag效果实现自由拖拽div
- daimajia的图片轮播开源项目AndroidImageSlider(自用,记录用)
- dojo面向对象的调用
- matlab的inpolygon用法简单介绍
- SPOJ 227 Ordering the Soldiers
- Ubuntu15.04 安装Android开发环境
- Shell的case语句
- 阅读十一、十二章节
- Shiro配置---基于spring框架
- Android从入门到精通 第八章 资源
- 网络端口的转发和重定向(Python)
- FTP 实现跨服务器文件上传下载
- 王家林的“云计算分布式大数据Hadoop实战高手之路”之完整目录
- 我在阿里做运营:八一八运营经典误区
- Java位运算符
- UIAlertView消息文本左对齐操作
- Jedis连接池的使用
- [UnityShader]顶点片段着色器实例(三)
- 一个机智的数组去重方法