zoukankan      html  css  js  c++  java
  • 131 Palindrome Partitioning 分割回文串

    给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。
    返回 s 所有可能的分割方案。
    例如,给出 s = "aab",
    返回
    [
      ["aa","b"],
      ["a","a","b"]
    ]
    详见:https://leetcode.com/problems/palindrome-partitioning/description/

    Java实现:

    class Solution {
        public List<List<String>> partition(String s) {
            List<List<String>> res=new ArrayList<List<String>>();
            if(s.isEmpty()){
                return res;
            }
            helper(s,0,new ArrayList<String>(),res);
            return res;
        }
        private void helper(String s,int start,List<String> out,List<List<String>> res){
            if(start==s.length()){
                res.add(new ArrayList<String>(out));
                return;
            }
            for(int i=start;i<s.length();++i){
                if(isPalindrome(s,start,i)){
                    out.add(s.substring(start,i+1));
                    helper(s,i+1,out,res);
                    out.remove(out.size()-1);
                }
            }
        }
        private boolean isPalindrome(String s,int start,int end){
            while(start<end){
                if(s.charAt(start)!=s.charAt(end)){
                    return false;
                }
                ++start;
                --end;
            }
            return true;
        }
    }
    
  • 相关阅读:
    My first blog!
    Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
    泛型-反射-注解
    JFinal自定义FreeMarker标签
    Hadoop集群中节点角色定义
    HBase
    MapReduce
    HDFS
    Hadoop基本概念
    HTTP浅析
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8723594.html
Copyright © 2011-2022 走看看