【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;
};
相关推荐
黎雁·泠崖12 小时前
栈与队列实战通关:3道经典OJ题深度解析
c语言·数据结构·leetcode
ytttr87318 小时前
隐马尔可夫模型(HMM)MATLAB实现范例
开发语言·算法·matlab
AlenTech19 小时前
160. 相交链表 - 力扣(LeetCode)
数据结构·leetcode·链表
点云SLAM19 小时前
凸优化(Convex Optimization)理论(1)
人工智能·算法·slam·数学原理·凸优化·数值优化理论·机器人应用
jz_ddk19 小时前
[学习] 卫星导航的码相位与载波相位计算
学习·算法·gps·gnss·北斗
放荡不羁的野指针20 小时前
leetcode150题-动态规划
算法·动态规划
sin_hielo20 小时前
leetcode 1161(BFS)
数据结构·算法·leetcode
一起努力啊~20 小时前
算法刷题-二分查找
java·数据结构·算法
水月wwww20 小时前
【算法设计】动态规划
算法·动态规划
码农水水21 小时前
小红书Java面试被问:Online DDL的INSTANT、INPLACE、COPY算法差异
算法