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

    给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

    返回 s 所有可能的分割方案。

    示例:

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

    class Solution {
        public List<List<String>> partition(String s) {
            List<List<String>> res = new ArrayList<>();
            bt(s,res,new ArrayList<>());
            return res;
        }
        private void bt(String s,List<List<String>> res,ArrayList<String> list){
            if(s == null || s.length() == 0){
                res.add(new ArrayList<>(list));
                return;
            }
            for(int i = 1;i <= s.length();i++){
                String str = s.substring(0,i);
                if(isValid(str,0,str.length() - 1)){
                    list.add(str);
                    bt(s.substring(i),res,list);
                    list.remove(list.size() - 1);
                }
            }
        }
        private boolean isValid(String s,int i ,int j){
            while(i < j){
                if(s.charAt(i) != s.charAt(j)) return false;
                i++;j--;
            }
            return true;
        }
    }
    一回生,二回熟
  • 相关阅读:
    BOM-DOM
    JavaScript
    CSS(2)
    CSS(1)
    HTML5
    索引
    数据库多表查询
    数据操作
    数据库表操作
    初识Java
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12707532.html
Copyright © 2011-2022 走看看