编程实现: 给定一个字符串 S (5<S 长度<50) ,请找出 S 中不含重复字符的最长子串的长度。 例如:s 为 ababc,其中 ababaababbababc,均为包含重复字符 的子串;而 ababbc 均为不含重复字符的子串,最长子串有 abc,所以不含重复字符的最长子串的长度为 3。 输入描述 输入一个字符串 S (5<S 长度<50) 输出描述 输出一个整数,表示 S 中不含重复字符的最长字串的长度 【输入样例】 ababc 【输出样例】 3
正确答案:参考程序(Python):s=input();maxlen=0;for i in range(len(s)):seen=set();for j in range(i,len(s)):if s[j] in seen:break;seen.add(s[j]);maxlen=max(maxlen,len(seen));print(maxlen)。核心:滑动窗口最长无重复子串。
试卷来源:202310(第15届)蓝桥杯Python编程青少组(选拔赛)真题