您的位置:首页 > 其它

Palindrome Partitioning

2015-08-09 15:23 337 查看
Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

For example, given s = "aab",

Return

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

将字符串分割成子串全是回文字符串。

public class Solution {
public List<List<String>> partition(String s) {
ArrayList<List<String>> result=new ArrayList<List<String>>();
if(s==null||s.length()<=0)
return result;
ArrayList<String> at=new ArrayList<String>();
dfs(s,0,at,result);
return result;
}
private void dfs(String s,int start,List<String> lt,ArrayList<List<String>> result){
if(start==s.length()){
List<String> t=new ArrayList<String>(lt);
result.add(t);
return;
}
for(int i=start+1;i<=s.length();i++){
String tmp=s.substring(start, i);
if(isPalindrome1(tmp)){
lt.add(tmp);
dfs(s,i,lt,result);
lt.remove(lt.size()-1);
}
}
}
private boolean isPalindrome1(String s){
for(int i=0;i<s.length()/2;i++){
if(s.charAt(i)!=s.charAt(s.length()-1-i))
return false;
}
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: