元宝 深度思考 LeetCode 131. 分割回文串 JavaScript实现

发布时间:2026/9/30 17:24:07
元宝 深度思考    LeetCode 131. 分割回文串 JavaScript实现 LeetCode 131 分割回文串 是一道非常经典的 回溯算法Backtracking 题目。题目描述给定一个字符串“s”将“s” 分割成一些子串使每个子串都是回文串。返回“s” 所有可能的分割方案。示例输入: “aab”输出: [ [“aa”,“b”], [“a”,“a”,“b”] ]解题思路回溯DFS从字符串的起始位置开始依次截取子串。回文判断每截取一个子串判断它是否为回文。如果是回文则将其加入当前方案“path”并递归处理剩余子串。递归结束后进行回溯将该子串从方案中移除尝试其他分割方式。终止条件当起始位置到达字符串末尾时说明找到了一种合法分割将当前方案加入结果集。优化可以用动态规划DP预先计算所有子串是否为回文避免每次递归时重复判断下面提供两个版本。方法一回溯 双指针判断回文简洁直观/**param {string} sreturn {string[][]}*/var partition function(s) {const result [];const path [];// 双指针判断回文function isPalindrome(left, right) {while (left right) {if (s[left] ! s[right]) return false;left;right–;}return true;}// 回溯函数function backtrack(start) {// 递归终止遍历完整个字符串if (start s.length) {result.push([…path]);return;}// 从 start 开始尝试分割 for (let i start; i s.length; i) { if (isPalindrome(start, i)) { // 截取子串 [start, i] path.push(s.substring(start, i 1)); // 递归处理剩余部分 backtrack(i 1); // 回溯 path.pop(); } }}backtrack(0);return result;};方法二回溯 DP 预处理性能更优适合长字符串/**param {string} sreturn {string[][]}*/var partition function(s) {const n s.length;// 1. DP 预处理dp[i][j] 表示 s[i…j] 是否为回文const dp Array.from({ length: n }, () Array(n).fill(false));for (let i 0; i n; i) dp[i][i] true; // 单个字符是回文for (let i n - 1; i 0; i–) {for (let j i 1; j n; j) {if (s[i] s[j]) {dp[i][j] (j - i 1) ? true : dp[i 1][j - 1];}}}// 2. 回溯const result [];const path [];function backtrack(start) {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)); backtrack(i 1); path.pop(); } }}backtrack(0);return result;};复杂度分析时间复杂度方法一约 O(n \cdot 2^n) 共有 2^{n-1} 种分割方式每次判断回文 O(n) 。方法二DP 预处理 O(n^2) 回溯过程同样是指数级但回文判断降为 O(1) 。空间复杂度 O(n) 递归调用栈以及存储路径的深度DP 数组额外占用 O(n^2) 。如果你需要我帮你把这段代码改成 TypeScript 版本或者想看 LeetCode 132分割回文串 II求最小分割次数 的动态规划解法随时告诉我

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询