【LeetCode热题100(59/100)】分割回文串

题目地址: 链接

思路: 依然是简单的递归回溯(枚举所有组合,逐个检查组合中的每个字符串是否为回文串)

js 复制代码
/**
 * @param {string} s
 * @return {string[][]}
 */

let isP = (arr) => {
    for(let str of arr) {
        let n = str.length;
        let m = Math.floor(str.length / 2);
        for(let i = 0; i < m; i ++) {
            if(str[i] !== str[n - 1 - i]) {
                return false;
            }
        }
    }
    return true;
}
var partition = function(s) {
    let ans = [];
    let n = s.length;
    const dfs = (idx, arr) => {
        if(idx == n) {
            ans = [...arr];
            return;
        }
        
        let arrLen = arr.length;
        for(let i = 0; i < arrLen; i ++) {
            let subarr = arr[i];
            arr.push([...subarr, s[idx]]);
            let m = subarr.length;
            subarr[m - 1] += s[idx];
        }
        if(arr.length == 0) arr.push([s[idx]]);
        dfs(idx + 1, arr);
    }

    dfs(0, [])

    let res = [];
    for(const subAns of ans) {
        if(isP(subAns)) res.push(subAns);
    }

    return res;
};
相关推荐
2201_758642645 分钟前
嵌入式C++开发注意事项
开发语言·c++·算法
AI科技星18 分钟前
基于v≡c第一性原理的大统一力方程:严格推导、全维度验证与四大基本相互作用的统一
人工智能·线性代数·算法·机器学习·平面
小杍随笔20 分钟前
【Rust 语言编程知识与应用:同步机制详解】
开发语言·算法·rust
sprite_雪碧22 分钟前
枚举 / 搜索类算法(机试核心考点)
算法
罗湖老棍子28 分钟前
简单题(信息学奥赛一本通- P1539)
数据结构·算法·树状数组·区间修改 单点查询
圣保罗的大教堂34 分钟前
leetcode 1594. 矩阵的最大非负积 中等
leetcode
羊小猪~~35 分钟前
【论文精度】Transformer---大模型基石
人工智能·深度学习·考研·算法·机器学习·transformer
西西弟1 小时前
常见排序算法集合(数据结构)
数据结构·算法·排序算法
Yzzz-F1 小时前
[模板]Nim博弈
算法
小龙报1 小时前
【数据结构与算法】栈和队列的综合应用:1.用栈实现队列 2.用队列实现栈 3.设计循环队列
c语言·数据结构·数据库·c++·redis·算法·缓存