代码随想录——分割回文串(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;
    }
}
相关推荐
hnjzsyjyj4 分钟前
洛谷 P1443:马的遍历 ← BFS
数据结构·bfs
BENA ceic10 分钟前
Spring 的三种注入方式?
java·数据库·spring
小雅痞14 分钟前
[Java][Leetcode middle] 209. 长度最小的子数组
java·算法·leetcode
二哈赛车手24 分钟前
新人笔记---项目中简易版的RAG检索后评测指标(@Recall ,Mrr..)实现
java·开发语言·笔记·spring·ai
做时间的朋友。25 分钟前
精准核酸检测
java·数据结构·算法
空中海26 分钟前
iOS 动态分析、抓包与 Frida Hook
ios·职场和发展·蓝桥杯
许彰午38 分钟前
CacheSQL(五):桥接篇
java·数据库·缓存·系统架构
冯诺依曼的锦鲤39 分钟前
从零实现高并发内存池:TCMalloc 核心架构拆解
c++·学习·算法·架构
Thomas_Lee_OR42 分钟前
多Agent路径规划 LaCAM for multi-agent path finding (MAPF)
算法·路径规划·仓储机器人·mapf
如君愿1 小时前
考研复习 Day28 | 习题--计算机网络第四章(网络层 中)、数据结构(树与二叉树 下)
数据结构·计算机网络·考研·课后习题·记录考研