【每日一题】LeetCode 131. 分割回文串 TypeScript

给你一个字符串 s,请你将s分割成一些 子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。

示例 1:

复制代码
输入:s = "aab"
输出:[["a","a","b"],["aa","b"]]

示例 2:

复制代码
输入:s = "a"
输出:[["a"]]

提示:

  • 1 <= s.length <= 16
  • s 仅由小写英文字母组成

TypeScript 复制代码
function partition(s: string): string[][] {
    const n = s.length
    const dp:boolean[][] = Array.from({length:n},()=>new Array(n).fill(false))

    for(let i=0;i<n;i++){
        dp[i][i] = true
    }

    for(let len=2;len<=n;len++){
        for(let i=0;i<=n-len;i++){
            const j = i + len - 1
            if(s[i]===s[j]){
                dp[i][j] = (len===2) || dp[i+1][j-1]
            }
        }
    }

    const result:string[][] = []
    const path:string[] = []

    const dfs = (start:number):void=>{
        if(start===n){
            result.push([...path])
            return
        }
        for(let i=start;i<n;i++){
            if(dp[start][i]){
                path.push(s.substring(start,i+1))
                dfs(i+1)
                path.pop()
            }
        }
    }
    dfs(0)
    return result
};

共勉

相关推荐
小白说大模型1 小时前
AI Agent 调试实战:链路追踪、Prompt 可视化与异常定位的系统方法
java·人工智能·python·算法·prompt
梅梅绵绵冰1 小时前
算法题-矩阵
数据结构·算法·矩阵
atunet1 小时前
关于从哈希冲突看缓存设计的实践与权衡7
算法
GuWenyue10 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋11 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx13 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂16 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一16 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH16 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法