gpt4 book ai didi

string - 查找不重复字符的最长子串

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:15 28 4
gpt4 key购买 nike

给定一个长度为N字符串S,找到最长的没有重复字符的子串。

示例:

输入:“计算器”

输出:“stackoverfl”

如果有两个这样的候选人,从左边第一个返回。我需要线性时间和常数空间算法。

最佳答案

  1. 您将需要一个开始和结束定位器(/指针)字符串和一个数组,用于存储每个字符的信息:它至少出现过一次吗?

  2. 从字符串的开头开始,两个定位器都指向字符串的开头。

  3. 将结束定位器向右移动直到找到重复(或到达字符串的末尾)。对于每个处理过的字符,将其存储在数组中。如果这是最大的子串,停止时存储位置。还要记住重复的字符。

  4. 现在在处理时对开始定位器做同样的事情每个字符,从数组中删除其标志。将定位器移动到你会发现重复字符的较早出现。

  5. 如果您还没有到达字符串的末尾,请返回第 3 步。

总体:O(N)

关于string - 查找不重复字符的最长子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734474/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com