`
standalone
  • 浏览: 595946 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[leetcode] Palindrome Partition

 
阅读更多
http://leetcode.com/onlinejudge#question_131

Question:

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"]
  ]

Solution:
This is also a DP. I like DP 


import java.util.ArrayList;


public class Partition {
    public ArrayList<ArrayList<String>> partition(String s) {
        // Start typing your Java solution below
        // DO NOT write main() function
         ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
        int length = s.length();
        if(length ==1){
            ArrayList<String> a = new ArrayList<String>();
            a.add(s);            
            result.add(a);
            return result;
        }
        
        
        for(int i=0; i< length; i++){
            String str = s.substring(0, i+1);
            if(isP(str)){
                if(i+1 == length){
                    ArrayList<String> a = new ArrayList<String>();
                    a.add(str);            
                    result.add(a);
                }else {
                ArrayList<ArrayList<String>> temp = partition(s.substring(i+1));
                for(ArrayList<String> a : temp){
                    a.add(0, str);
                    result.add(a);
                }
                }
            }
        }
        return result;
    }
    
      public  boolean isP(String s){
        int length = s.length();
        if(length == 1 || length ==0) return true;
        
        int i=0; int j= length-1;
        while(s.charAt(i) == s.charAt(j) && i<j){
            i++;j--;            
        }
        if(i<j) return false;
        else return true;
    }
      
    public static void printResult (ArrayList<ArrayList<String>> array){
        for(ArrayList<String> a: array){
            for(String s: a){
                System.out.print("\t" + s);
            }
            System.out.println();
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String str = "ddfdsfadf";
        Partition p = new Partition();
        Partition.printResult(p.partition(str));
    }

}


   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics