首页 > 试题广场 >

连续子序列

[编程题]连续子序列
  • 热度指数:61 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在网络安全日志分析系统中,每台服务器每秒会产生一条由字母和数字组成的事件编码。安全分析师发现,当连续一段时间内的事件编码序列中没有出现重复的编码字符时,这段时间内的日志可以被认为是"独立事件窗口",有助于精确定位异常行为。窗口越长,说明系统在该时段内产生的事件种类越丰富,分析价值越高。

现在给你一条完整的事件编码序列 s,请你找到其中最长的一段连续子序列,使得这段子序列中每个字符都不相同,并输出该子序列的长度。

输入描述:
一行,一个字符串 s,仅由 ASCII 字母和数字组成,不含空格。字符串长度为 n (1 <= n <= 10^7)。


输出描述:
一个整数,表示 s 中最长的不含重复字符的连续子串的长度。
示例1

输入

xY3abxY3c

输出

6

说明

最长的无重复字符子串为 "abxY3c"(从第4个字符到第9个字符),长度为6。其中每个字符 a, b, x, Y, 3, c 都只出现了一次。
示例2

输入

aaaaaaa

输出

1

说明

所有字符都相同,任意长度大于1的子串都包含重复字符,因此最长无重复子串长度为1。

备注:
本题由牛友@Charles 整理上传

这道题你会答吗?花几分钟告诉大家答案吧!