首页 > 试题广场 >

无重复字符的最长子串

[编程题]无重复字符的最长子串
  • 热度指数:2673 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。


输入描述:

一行一个字符串,长度不超过1000



输出描述:

输出一个数字表示最长子串的长度

示例1

输入

abcabcbb

输出

3

说明

因为无重复字符的最长子串是"abc",所以其长度为3.

头像 星野宸
发表于 2020-12-19 12:08:40
1/ 开辟一个空间为256的int型数组dict[],初始值全为-12/ 设置一个flag变量,记录字符上一次出现的位置,初始值为-13/ 将字符串S[]中的字符和其下标,与新开辟的数组下标和值一一对应。例如 字符串 s[]="ABCDGAB“dict[字符]=对应的下标志;即,dict[A]=0; 展开全文
头像 游骑兵PXZ
发表于 2021-07-01 01:02:08
对于求解字符子串的问题,可以考虑采用滑动窗口的策略。首先,创建一个集合windows,表示窗口内的子串无重复字符,窗口大小表示无重复子串的长度;然后声明两个变量,分别表示窗口的左边界L和右边界R。如果当前字符不在窗口中,则集合中添加该元素,同时窗口向右扩展;如果窗口中存在当前字符,则删除当前字符,并 展开全文
头像 牛客810640130号
发表于 2022-02-08 13:58:52
1000) { return '长度超过1000,请重新输入'; } $long_str_arr = []; $long_str_key = []; $out = []; for ($i = 0; $i < $str_len - 1; $ 展开全文