代码随想录——分割回文串(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;
    }
}
相关推荐
杂货铺的小掌柜2 分钟前
MAC版IDEA常用快捷键
java·macos·intellij-idea
leoufung10 分钟前
LeetCode 67. Add Binary:从面试思路到代码细节
算法·leetcode·面试
xjz184213 分钟前
JVM虚拟线程:JEP 444开启Java并发编程新纪元
java
JH307314 分钟前
Spring Retry 实战:优雅搞定重试需求
java·后端·spring
无限进步_19 分钟前
【C语言】循环队列的两种实现:数组与链表的对比分析
c语言·开发语言·数据结构·c++·leetcode·链表·visual studio
wjykp23 分钟前
79~87逻辑回归f
算法·机器学习·逻辑回归
蓝眸少年CY29 分钟前
测试Java性能
java·开发语言·python
何包蛋H29 分钟前
数据结构深度解析:Java Map 家族完全指南
java·开发语言·数据结构
古译汉书35 分钟前
keil编译错误:Error: Flash Download failed
开发语言·数据结构·stm32·单片机·嵌入式硬件
聆风吟º37 分钟前
【顺序表习题|图解|双指针】合并两个有序数组 + 训练计划 I
c语言·数据结构·c++·经验分享·算法