代码随想录——分割回文串(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;
    }
}
相关推荐
seeksky1 分钟前
分词与 BPE 实现(tiktoken)
算法
invicinble2 分钟前
关于写原创文章的思路分析
java·spring boot·spring
heartbeat..3 分钟前
MySQL 索引从入门到精通:核心概念、类型与实战优化
java·数据库·mysql·索引
super杨某人3 分钟前
算法十日谈:双指针
数据结构·算法
heartbeat..3 分钟前
MySQL 存储引擎解析:InnoDB/MyISAM/Memory 原理与选型
java·数据库·mysql·存储引擎
kklovecode5 分钟前
C语言数组:零长数组,可变数组,多维数组
java·c语言·算法
LeetCode天天刷7 分钟前
1348 推文计数【区间】
java·服务器·windows
0***m8227 分钟前
MATLAB高效算法实战技术文章大纲向量化运算替代循环结构
开发语言·算法·matlab
AY呀8 分钟前
《从赛车到代码:我是如何理解深度优先搜索的》
算法
不知名XL10 分钟前
day22 回溯算法part04
算法·leetcode·职场和发展