自学内容网 自学内容网

leetcode131.分割回文串

给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

示例 1:

输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]

示例 2:

输入:s = "a"
输出:[["a"]]

思路:主要就是确定一个串的start和end

List<List<String>> list=new ArrayList<>();
    List<String> ret=new ArrayList<>();
    public List<List<String>> partition(String s) {
        backTracking(s,0);
        return list;
    }

    public void backTracking(String s,int start){
        if(start>=s.length()){
            list.add(new ArrayList<>(ret));
            return;
        }
        for(int i=start;i<s.length();i++){
            if(isHuiWen(start,i,s)){
                ret.add(s.substring(start,i+1));
                backTracking(s,i+1);
                ret.remove(ret.size()-1);
            }
        }
    }

    // 判断是否是回文串
    public boolean isHuiWen(int start,int end,String s){
        while(start<=end){
            if(s.charAt(start)!=s.charAt(end))
                return false;
            start++;
            end--;
        }
        return true;
    }


原文地址:https://blog.csdn.net/m0_64995001/article/details/145148047

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!