码迷,mamicode.com
首页 > 其他好文 > 详细

Palindrome Partitioning

时间:2015-06-11 12:27:43      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

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

 

Palindrome Partitioning

标签:

原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4568568.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!