代码随想录——分割回文串(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;
    }
}
相关推荐
sg_knight几秒前
设计模式实战:策略模式(Strategy)
java·开发语言·python·设计模式·重构·架构·策略模式
麦麦鸡腿堡1 分钟前
JavaWeb_SpringBootWeb,HTTP协议,Tomcat快速入门
java·开发语言
qq_417695054 分钟前
内存对齐与缓存友好设计
开发语言·c++·算法
2301_816651225 分钟前
实时系统下的C++编程
开发语言·c++·算法
一然明月5 分钟前
Qt QML 锚定(Anchors)全解析
java·数据库·qt
晓纪同学5 分钟前
EffctiveC++_02第二章
java·jvm·c++
2401_831824965 分钟前
C++与Python混合编程实战
开发语言·c++·算法
2301_8166512213 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
jgyzl14 分钟前
2026.3.20 用EasyExcel实现excel报表的导入与导出
java·python·excel