首页 > 解决方案 > Javascript:查找唯一字符的最长子串的长度

问题描述

我在这里有以下问题:我需要找出最长的唯一字符子串的长度。

就像,我有一个字符串thequickbrownfoxjumpsoveralazydog,我希望得到14(的长度thequickbrownf

我在这里发现了许多与该主题相关的主题,但我似乎无法将这些解决方案(如果可用)翻译成 Javascript。

各位大佬能帮帮我吗?提前一百万谢谢!

标签: javascriptstringunique

解决方案


一种选择是使用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);


推荐阅读