lintcode(136)分割回文串
来源:互联网 发布:osi模型网络层相关 编辑:程序博客网 时间:2024/06/01 08:06
描述:
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。
返回s所有可能的回文串分割方案。
样例:
给出 s = "aab"
,返回
[ ["aa", "b"], ["a", "a", "b"]]
思路:
应用递归来实现,每次从起始位置一次截取1,2...个字符长度,并且判断是否为回文串,是则进行下一步递归。
public class Solution { /** * @param s: A string * @return: A list of lists of string */ public List<List<String>> partition(String s) { // write your code here List<List<String>> result = new ArrayList<List<String>>(); if(s == null){ return result; } List<String> temp = new ArrayList<String>(); if(s.length() == 0){ result.add(temp); return result; } search(s , result , temp ,0); return result; } public void search(String s , List<List<String>> result , List<String> temp , int start){ if(start == s.length()){ List<String> p = new ArrayList<String>(temp); result.add(p); return; } for(int i = start;i<s.length();i++){ if(isPartition(s.substring(start , i+1))){ temp.add(s.substring(start , i+1)); search(s , result , temp , i+1); temp.remove(temp.size() - 1); } } } public boolean isPartition(String temp){ int i = 0; int j = temp.length() - 1; while(i<j){ if(temp.charAt(i) != temp.charAt(j)){ return false; } i++; j--; } return true; }}
0 0
- lintcode-分割回文串-136
- lintcode(136)分割回文串
- LintCode- 分割回文串
- LintCode:分割回文串
- 分割回文串-LintCode
- LintCode-分割回文串 II
- LintCode: 分割回文串 II
- 分割回文串 II-LintCode
- [Lintcode]Palindrome Partitioning分割回文串
- LintCode : 有效回文串
- LintCode-有效回文串
- lintcode刷题--回文串
- lintcode --有效回文串
- LintCode:回文串
- 有效回文串,lintcode
- LintCode 最长回文串
- lintcode:最长回文串
- lintcode:有效回文串
- NYOJ
- RAR 命令行语法
- 回文字符串
- 【转】如何建立自己的知识体系?
- 牛人写的设计游戏服务器
- lintcode(136)分割回文串
- 系统进程与线程关系以及使用Python获取的方法
- U盘安装ubuntu 16.04 遇到 gfxboot.c32:not a COM32R image boot 的解决方法
- 解决WebBrowser控件打开本地页面报安全提示的问题
- eclipse出现小红叉,却又找不到 哪个文件错误
- lintcode(178)图是否是树
- HBase配置web界面
- HDU 2258 Continuous Same Game (1) (dfs+模拟)
- access与mssql通用写法总结