javascript - Javascript:查找唯一字符的最长子串的长度
问题描述
我在这里有以下问题:我需要找出最长的唯一字符子串的长度。
就像,我有一个字符串thequickbrownfoxjumpsoveralazydog
,我希望得到14
(的长度thequickbrownf
)
我在这里发现了许多与该主题相关的主题,但我似乎无法将这些解决方案(如果可用)翻译成 Javascript。
各位大佬能帮帮我吗?提前一百万谢谢!
解决方案
一种选择是使用Set
您在发现重复字符时重置的,它会O(N)
及时运行:
const str = 'thequickbrownfoxjumpsoveralazydog';
let set = new Set();
let bestRecordSoFar = 0;
let currRecord = 0;
[...str].forEach((char) => {
if (set.has(char)) {
bestRecordSoFar = Math.max(bestRecordSoFar, currRecord);
set = new Set();
currRecord = 0;
}
set.add(char);
currRecord++;
});
const best = Math.max(bestRecordSoFar, currRecord);
console.log(best);
推荐阅读
- cmake - CMake find_dependency 不尊重包文档中的行为?
- javascript - JS DOM 更新样式值意外行为
- python-3.x - 代码在 PyCharm 中工作,但在通过 python 控制台启动时不起作用
- netty - 将从 ChannelInboundHandlerAdapter 捕获的错误传播到 ChannelFuture
- javascript - 如何使用 ServerOperation 获取 Kendo Grid 项目的页面
- neo4j - 在 Neo4j 中使用密码匹配节点名称
- python - AttributeError:“元组”对象没有属性“autoscale_None”
- python - pandas groupby 使用一列列表值
- angular - 为什么没有返回我的 Edge HTTP 响应标头?
- node.js - Ghost - 无法连接到引导套接字 (localhost 8000) ECONNREFUSED