LEETCODE Palindrome partitioning

来源:互联网 发布:在vb集成环境中要添加 编辑:程序博客网 时间:2024/05/16 23:45

dfs回溯

    public ArrayList<ArrayList<String>> partition(String s) {        ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();        if(s == null || s.length() == 0) return result;        ArrayList<String> tmpRes = new ArrayList<String>();        helper(s, result, tmpRes);        return result;    }        public void helper(String s, ArrayList<ArrayList<String>> result, ArrayList<String> tmpRes){       if(s.length() == 0){           result.add(new ArrayList<String>(tmpRes));           return;       }              for(int i = 0; i < s.length(); i++){           String pre = s.substring(0, i + 1);           if(isPalindrome(pre)){               tmpRes.add(pre);               helper(s.substring(i + 1), result, tmpRes);               tmpRes.remove(tmpRes.size() - 1);           }       }    }        public boolean isPalindrome(String s){        int start = 0;        int end = s.length() - 1;        while(start <= end){            if(s.charAt(start) != s.charAt(end))                return false;            start ++;            end--;        }        return true;    }



0 0
原创粉丝点击