当前位置: 首页 > news >正文

千问 LeetCode 2781. 最长合法子字符串的长度 JavaScript实现

这是 LeetCode 2781 题“最长合法子字符串的长度”的 JavaScript 版本实现。思路和 Java 版完全一致,依然采用双指针(滑动窗口)+ 逆向枚举的方法。

JavaScript 代码实现

/**
* @param {string} word
* @param {string[]} forbidden
* @return {number}
*/
var longestValidSubstring = function(word, forbidden) {
// 将 forbidden 数组存入 Set,实现 O(1) 时间复杂度的查找
const set = new Set(forbidden);

const n = word.length;
let ans = 0;
let left = 0;

// right 指针不断向右扩展
for (let right = 0; right < n; right++) {
// 从当前 right 位置开始,倒着往前最多检查 10 个字符
// 因为 forbidden 中最长的字符串长度只有 10
for (let i = right; i >= left && i > right - 10; i--) {
// 截取子串 word[i...right]
const sub = word.substring(i, right + 1);
if (set.has(sub)) {
// 如果发现了非法子串,左指针必须收缩到该非法子串的右侧
left = i + 1;
// 找到一个非法的就可以停止了,因为我们要找的是最靠左的冲突点来更新 left
break;
}
}
// 更新最长合法子字符串的长度
ans = Math.max(ans, right - left + 1);
}

return ans;
};

复杂度分析
* 时间复杂度:O(N)。虽然代码中有一个嵌套的 for 循环,但由于 forbidden 字符串的最大长度限制为 10,内层循环最多只会执行 10 次(常数级别)。因此,整体时间复杂度取决于外层 right 指针的遍历,即 O(N),其中 N 是 word 的长度。
* 空间复杂度:O(M)。我们需要一个哈希集合(Set)来存储 forbidden 数组中的字符串,其中 M 是 forbidden 数组中所有字符串的总长度。

http://www.rkmt.cn/news/1409470.html

相关文章:

  • 基于AD7606B与FPGA的8通道并行数据采集系统设计与实现
  • IR/EM:芯片性能与可靠性的隐形杀手
  • Qwen模型 Max LeetCode 2790. 长度递增组的最大数目 TypeScript实现
  • 2026年当前武汉专业复印纸公司深度解析与选择指南 - 2026年企业资讯
  • 如何快速轻松地删除 iPhone/iPad 上的提醒事项
  • 从计算器到FPGA:深入浅出聊聊CORDIC算法,它凭什么能优雅地算开方?
  • 抖音无水印下载:从手动保存到自动化批量采集的终极方案
  • 从零构建Simulink C模块:S-Function Builder实战指南
  • 2026小红书爆款攻略:算法时代的种草秘籍
  • 终极指南:3分钟掌握FSearch极速文件搜索神器,告别Linux找文件烦恼!
  • Surface Pro/Laptop 用户必看:不关Secure Boot,搞定Arch Linux双系统与驱动签名全流程
  • 高光谱图像超分辨率技术:DPSR架构与实时处理优化
  • 2026年国内有哪些专业的GEO服务商/公司推荐?真实测评
  • CrossOver容器访问Mac外置硬盘?手把手教你映射D盘(保姆级图文)
  • 从CS231N作业到你的实验:Tiny-ImageNet数据集完整使用指南(含预处理与可视化)
  • 基于断言与故障分析的RTL级近似计算自动化探索方法
  • 告别Keil!在Ubuntu 20.04上用VSCode+GCC玩转国产HC32L110单片机
  • 哈夫曼树
  • MSP430F5529新手避坑指南:CCS导入driverlib库报错?手把手教你搞定环境搭建
  • 为什么你的ChatGPT简历总被筛掉?揭秘LinkedIn数据验证的4大语义断层点及动态重写公式
  • 告别手写文档:IDEA+EasyYapi实现接口文档的自动化生成与同步
  • 单词搜索:二维网格中的 DFS 回溯与剪枝优化
  • 超越SIFT和CNN?聊聊GIST特征在场景分类中的独特优势与实战应用
  • 2026年第二季度温州全屋定制直销厂家选择指南:品质与设计的双重考量 - 2026年企业资讯
  • 别再死记硬背了!用Python+Matplotlib可视化理解梯度、散度与旋度
  • 终极Illustrator脚本合集:25个免费工具让设计效率飙升300%
  • AI工具集:本地Node基于云端AI模型使用Stdio封装自定义MCP服务
  • 别再死记公式了!用Python的NumPy和Pandas实战理解样本均值、方差与中心矩
  • 口碑好的儿童节蛋糕哪家专业?太原唯客时光蛋糕的专业维度解析
  • 条码扫描模组选型指南:从成像、解码与集成维度做技术评估