Palindrome Partitioning

来源:互联网 发布:超级基因优化液第二部 编辑:程序博客网 时间:2024/05/22 08:28

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;}}


0 0
原创粉丝点击