代码随想录——分割回文串(Leetcode 131)

题目链接

回溯

java 复制代码
class Solution {
    List<List<String>> res = new ArrayList<List<String>>();
    List<String> list= new ArrayList<String>();
    public List<List<String>> partition(String s) {
        backtracking(s, 0);
        return res;
    }
    public void backtracking(String s, int startIndex){
        if(startIndex >= s.length()){
            res.add(new ArrayList<>(list));
            return;
        }
        for(int i = startIndex; i < s.length(); i++){
            // 如果是回文数,则继续回溯
            if(is(s, startIndex, i)){
                list.add(s.substring(startIndex, i + 1));
            }else{
                continue;
            }
            backtracking(s, i + 1);
            list.removeLast();
        }
    }
    // 判断回文数
    public boolean is(String s, int start, int end){
        for(int i = start, j = end; i < j; i++, j--){
            if(s.charAt(i) != s.charAt(j)){
                return false;
            }
        }
        return true;
    }
}
相关推荐
JuneXcy2 小时前
循环高级(1)
c语言·开发语言·算法
流火无心3 小时前
mysql索引 底层数据结构与算法
数据结构·mysql·索引
编啊编程啊程3 小时前
响应式编程框架Reactor【2】
java
编啊编程啊程3 小时前
响应式编程框架Reactor【3】
java·开发语言
Ka1Yan3 小时前
什么是策略模式?策略模式能带来什么?——策略模式深度解析:从概念本质到Java实战的全维度指南
java·开发语言·数据结构·算法·面试·bash·策略模式
绝无仅有4 小时前
Go Timer 面试指南:常见问题及答案解析
后端·算法·架构
你我约定有三4 小时前
面试tips--java--equals() & hashCode()
java·开发语言·jvm
地平线开发者4 小时前
开发者说|H-RDT:基于人类操作数据的跨本体机器人学习
算法·自动驾驶
努力也学不会java5 小时前
【设计模式】简单工厂模式
java·开发语言·设计模式·简单工厂模式
就叫飞六吧5 小时前
基于Spring Boot的短信平台平滑切换设计方案
java·spring boot·后端