首页 > 试题广场 >

找出最长不重复字符的子串

[编程题]找出最长不重复字符的子串
  • 热度指数:27511 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个字符串,找出最长的不具有重复字符的子串的长度。例如,“abcabcbb”不具有重复字符的最长子串是“abc”,长度为3。对于“bbbbb”,最长的不具有重复字符的子串是“b”,长度为1。
示例1

输入

""

输出

0
头像 诗云panther
发表于 2021-08-21 15:06:58
class Solution {public: /** * * @param s string字符串 * @return int整型 */ int lengthOfLongestSubstring(string s) { // write c 展开全文
头像 李可乐,
发表于 2020-03-21 14:32:25
public int lengthOfLongestSubstring(String s) {         if (s == null  展开全文
头像 laglangyue
发表于 2020-07-27 18:57:07
最长不重复子串 双指针,用一个hash保存子串已经存在的字符,这里使用一个int数组,如果字符存在,那么hash[char]=1;举个例子:abcbd,q指针一直向前走,当走到第二个b的时候,令p向前走,一直走到第一个p,q每次都令hash为1,p每次令hash为0; import java.uti 展开全文
头像 华科不平凡
发表于 2020-08-15 20:08:32
借助map辅助,用map记录每一个字符的最大的下标,用left记录没有重复字符子串的起始位置,空间复杂度和时间复杂度均为O(n)。 class Solution { public: /** * * @param s string字符串 * @return int 展开全文
头像 ivansli
发表于 2021-04-22 11:09:53
go + 滑动窗口 package main /** * * @param s string字符串 * @return int整型 */ func lengthOfLongestSubstring( s string ) int { // write code here 展开全文
头像 我是一颗大白菜__
发表于 2021-09-29 11:23:16
采用滑动窗口的方法解决此问题 设置一个无序字符型集合win for loop遍历字符串s 如果s[i]不在win中,则将其插入win 如果s[i]在win中,则删除已有的s[i] 持续更新res return res; class Solution { public: /** * 展开全文