【leetcode】5.最长回文子串js

发布时间:2026/7/18 20:13:39

【leetcode】5.最长回文子串js
题目代码-中心扩散法好这题还是看题解了。思路是采用中心扩散法遍历到一个字符就以它为中心向两边扩散看最长的回文子串长度多少如果比现有的长就更新当前最长的回文子串没有就继续往下遍历。需要注意的点是回文子串可能是奇数长度和偶数长度两种情况。/** * param {string} s * return {string} */ var longestPalindrome function(s) { if (s.length 2) return s let res for (let i 0; i s.length; i) { // 回文字串长度是奇数 helper(i, i) // 回文字串长度是偶数 helper(i, i1) } function helper(left, right) { while (left 0 right s.length s[left] s[right]) { left-- right } // 这里用right - left - 1是因为循环之后left和right恰好是不满足条件的时刻 // 因此两个边界不能取应该取left 1到right - 1这个区间 if (right - left - 1 res.length) { // slice左闭右开取[left 1, right - 1] res s.slice(left 1, right) } } return res };时间复杂度是O(n²)空间复杂度是O(1)代码-动态规划原题解在这里传送门特别厉害啊我膜拜1. 定义dp数组用一个二维数组dp[i][j]来表示字符串中下标从i到j的子串s[i...j]是不是回文子串2. 状态转移规则当 s[i] ! s[j]显然 s[i..j] 不是回文串当 s[i] s[j] 时若 j - i 3子串长度为2或3只要两端字符相等就是回文串否则要看内部子串 dp[i 1][j - 1] 是否为回文。3. 状态初始化所有dp[i][i]都是true因为只有单个字符肯定是回文。4. 最终目标在遍历过程中记录最长回文的起始下标 begin 和长度 maxLen最终用 s.substring(begin, begin maxLen) 返回。这里就直接贴佬的代码了可供学习参考。/** * param {string} s * return {string} */ var longestPalindrome function(s) { const len s.length; if (len 2) return s; // 长度小于2直接返回原串 let maxLen 1; // 初始化最大长度 let begin 0; // 初始化起始位置 const dp Array.from({ length: len }, () Array(len).fill(false)); // 所有长度为1的子串都是回文串 for (let i 0; i len; i) { dp[i][i] true; } const charArray s.split(); // 枚举子串结束位置 j for (let j 1; j len; j) { // 枚举子串起始位置 i必须 i j for (let i 0; i j; i) { if (charArray[i] ! charArray[j]) { dp[i][j] false; } else { if (j - i 3) { dp[i][j] true; // 长度为2或3只要两端相等就是回文 } else { dp[i][j] dp[i 1][j - 1]; // 否则依赖内部是否回文 } } // 更新最长回文子串的位置和长度 if (dp[i][j] j - i 1 maxLen) { maxLen j - i 1; begin i; } } } return s.substring(begin, begin maxLen); };时间复杂度和空间复杂度都是O(n²)

相关新闻

育儿科普|暑假放任孩子晚睡晚起、自然醒?昼夜颠倒对孩子的影响及标准化作息方案

育儿科普|暑假放任孩子晚睡晚起、自然醒?昼夜颠倒对孩子的影响及标准化作息方案

2026/7/18 20:13:39

摘要:暑假期间,多数家长存在育儿误区,认为孩子平日上学辛苦,可无节制熬夜、睡到自然醒,以此“补觉休息”。实则昼夜颠倒的作息模式,会破坏孩子生物钟、降低专注力、弱化自律能力,造成开学衔接困…

为什么92%的n8n AI自动化项目失败?资深架构师亲授3个致命误区及避坑清单

为什么92%的n8n AI自动化项目失败?资深架构师亲授3个致命误区及避坑清单

2026/7/18 20:13:39

更多请点击: https://intelliparadigm.com 第一章:为什么92%的n8n AI自动化项目失败?——失败率背后的系统性真相 这个惊人的失败率并非源于n8n本身的技术缺陷,而是暴露了AI自动化落地过程中长期被忽视的系统性断层:工…

全程用飞算JavaAI落地企业物流调度系统,真实开发体验分享

全程用飞算JavaAI落地企业物流调度系统,真实开发体验分享

2026/7/18 20:13:39

最近参加飞算JavaAI炫技赛,全程沉浸式体验了一波专属Java智能开发工具的落地能力。我平时接触的大多是企业级实战项目,对各类开发工具的评判标准很简单:不看噱头,只看能不能贴合工程规范、能不能落地真实业务、能不能减少重复开发…

sql更新数据的几种方式

sql更新数据的几种方式

2026/7/18 21:33:42

1.全删除全插入 2.delete当天数据, insert当天数据 3.根据主键更新数据 merge into a using b on() when matched then update when not matched then insertINSERT INTO a(id,name) SELECT id,name FROM b ON DUPLICATE KEY UPDATE nameb.name 4.更新拉链表 update…

Java内存屏障与volatile:从JMM到CPU缓存一致性的完整链路

Java内存屏障与volatile:从JMM到CPU缓存一致性的完整链路

2026/7/18 21:33:42

Java内存屏障与volatile:从JMM到CPU缓存一致性的完整链路很多 Java 程序员能背出「volatile 保证可见性、禁止指令重排序」,但问到「它到底插了哪些内存屏障」和「MESI 协议在哪个环节介入」时,思路就开始模糊。这篇文章把这条链路从头到尾串…

大模型Agent的系统可靠性:从单次调用到多步推理的端到端保障

大模型Agent的系统可靠性:从单次调用到多步推理的端到端保障

2026/7/18 21:33:42

大模型Agent的系统可靠性:从单次调用到多步推理的端到端保障一个 LLM 调用的成功率是 99.9%,看起来不错。但一个 Agent 任务包含 8 步推理,每一步都调用 LLM——整个任务的成功率就变成了 0.999^8 ≈ 99.2%。这还没算工具调用失败、输出格式错…

大模型应用的服务分级:从核心链路到实验功能的SLO差异化设计

大模型应用的服务分级:从核心链路到实验功能的SLO差异化设计

2026/7/18 21:33:42

大模型应用的服务分级:从核心链路到实验功能的SLO差异化设计当一个大模型应用承载了 50 个 AI 能力,而 GPU 资源只够保障其中 15 个稳定运行时,架构师的第一反应不应该是「加机器」,而是「分等级」。一、为什么大模型应用必须做服…

国产模型杀进全球前三,我劝你现在就注册 Kimi(附抽奖链接)

国产模型杀进全球前三,我劝你现在就注册 Kimi(附抽奖链接)

2026/7/18 21:33:42

昨晚,Kimi K3 正式发布。 2.8 万亿参数,100 万上下文。 这是国内第一个 3 万亿级别的模型,也是全世界第一个面向所有人开源的 3 万亿级模型。 如果你还没用过 Kimi,现在就是最好的注册时机。 一、它有多强 不看广告,…

2026年蜘蛛池最新规则,新手入门必看

2026年蜘蛛池最新规则,新手入门必看

2026/7/18 21:23:42

在网络世界里,蜘蛛池关于很多新手来说既神秘又充溢吸引力。那么在 2026 年,蜘蛛池有哪些最新规矩是新手有必要了解的呢? 首要,蜘蛛池的准入规矩变得愈加严厉了。曾经可能只要有必定的资源就能搭建蜘蛛池,现在可不行啦&…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/18 14:07:00

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/17 17:34:09

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/18 5:51:23

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

2026/7/18 0:02:02

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

2026/7/18 0:02:02

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

某智驾大牛创业

某智驾大牛创业

2026/7/18 0:02:02

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…