【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²)

相关新闻

新标准落地!JTG/T 3603—2026 公路智慧工地合规解决方案:一站式场站数字化系统实践

新标准落地!JTG/T 3603—2026 公路智慧工地合规解决方案:一站式场站数字化系统实践

一、前言:公路智慧工地迎来统一国标,数字化管控成刚需 2026 年 8 月 1 日,交通运输部发布的《公路工程智慧工地建设技术指南》(JTG/T 3603—2026)将正式实施。在此之前,国内公路、铁路、水利基建智慧工地长…

2026/7/21 17:18:43 阅读更多 →
MES 系统与 ERP 系统完整对比、区别与协同关系

MES 系统与 ERP 系统完整对比、区别与协同关系

一、核心定位ERP(企业资源计划):管钱、管人、管物料、管订单,企业上层经营管理系统,面向计划层;MES(制造执行系统):管车间生产、设备、工序、品质,工厂中层执…

2026/7/21 17:18:47 阅读更多 →
浅记ES学习

浅记ES学习

Elasticsearch 学习一、什么是 ElasticsearchES 是一个基于 Lucene 的分布式全文搜索引擎。你存进去的是 JSON,查出来的是毫秒级的搜索结果。核心三句话:① 倒排索引 — 不是逐行扫,而是直接翻字典② 分布式 — 数据分片到多台机器&#xff0…

2026/7/22 16:38:25 阅读更多 →

最新新闻

创世 SD NAND是什么?贴片式SD卡工业级选型全指南

创世 SD NAND是什么?贴片式SD卡工业级选型全指南

创世 SD NAND是近年来在工业控制、车载电子、医疗设备、物联网终端等领域快速普及的一种贴片式存储芯片,也常被称作贴片式TF卡、贴片式SD卡、SDFlash、工业级SD卡。它将传统SD卡的协议与功能,封装成可直接SMT贴片焊接的芯片形态,在体积、稳定…

2026/7/23 14:21:55 阅读更多 →
UI-TARS 源码解析 #11:坐标格式转换:point、start_box、end_box 是如何被统一处理的?

UI-TARS 源码解析 #11:坐标格式转换:point、start_box、end_box 是如何被统一处理的?

在上一篇文章中,我们分析了 parse_action 函数。 它的作用是把模型输出的函数调用式 Action: click(start_box(850,120))解析成结构化结果: {"function": "click","args": {"start_box": "(850…

2026/7/23 14:21:55 阅读更多 →
Go 并发三板斧:如何优雅地收集多个 goroutine 的结果?

Go 并发三板斧:如何优雅地收集多个 goroutine 的结果?

### 写在前面在 Go 里写并发程序,最常见的一个需求是:**同时发起多个任务,然后收集它们的结果。**但收集的方式不止一种。你是**全部等齐再处理**?还是**谁先回来用谁的**?还是**边回来边处理**?这三种场景…

2026/7/23 14:21:55 阅读更多 →
xAI开源Grok Build:Rust终端编程智能体架构全解与实战指南

xAI开源Grok Build:Rust终端编程智能体架构全解与实战指南

xAI开源Grok Build:Rust终端编程智能体架构全解与实战指南 2026年7月15日,埃隆马斯克旗下人工智能公司xAI做了一件让整个开发者社区始料未及的事:将其核心工程工具Grok Build的完整源代码开源至GitHub。这是xAI自2023年成立以来首次对外公开核…

2026/7/23 14:21:55 阅读更多 →
Claude Code使用限额提升50%与延期政策详解:安装配置与优化指南

Claude Code使用限额提升50%与延期政策详解:安装配置与优化指南

Claude Code 使用限额提升与延期政策详解:开发者必看指南 最近在使用 Claude Code 进行开发时,很多用户都遇到了 "claude code 已达到 5 小时的使用上限。您的限额将在..." 的提示,这确实影响了开发效率。好消息是,官方…

2026/7/23 14:21:55 阅读更多 →
Agentic AI与智能设备的融合:从感知到决策的实践

Agentic AI与智能设备的融合:从感知到决策的实践

1. Agentic AI与智能设备的融合革命当你的智能音箱不仅能播放音乐,还能主动提醒你"明天上午10点有会议,需要我现在帮你预约车辆吗?"——这就是Agentic AI在智能设备中的具象化体现。作为从业者,我见证了从简单指令响应到…

2026/7/23 14:20:54 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻