Python学习01Python基础知识-作业4字符串
【摘要】 题目描述输入一个字符串,求最大的没有重复字符的子字符串长度比如:输入huaweicloudaigallery输出 9 (huaweiclo或aweicloud或weiclouda) 代码实现string = input() # 手动输入字符串if string is None or len(string)==0: string = input("字符串不能为空,请重新输入") de...
题目描述
输入一个字符串,求最大的没有重复字符的子字符串长度
比如:输入huaweicloudaigallery
输出 9 (huaweiclo或aweicloud或weiclouda)
代码实现
string = input() # 手动输入字符串
if string is None or len(string)==0:
string = input("字符串不能为空,请重新输入")
def func(s):
len_s = len(s)
str_dict = {} # 数据字典 存储最近的不重复字符(key)及其下标(value)
maxlength = 0 # 最长字串长度
start = 0 # 当前子串开始位置,最近重复的下一个位置
curlength = 0 # 当前子串长度
for i in range(len_s):
# 如果当前字符在数据字典中,且存在字符的位置在当前字串内,即出现重复,需要重复开始
if s[i] in str_dict and str_dict[s[i]]>=start:
start = str_dict[s[i]] + 1 # 重新开始
curlength = 0
curlength = curlength+1 # 当前子串长度+1
# 更新字典 当前字符最近的位置
str_dict[s[i]] = i
if curlength > maxlength:
maxlength = curlength # 更新最长长度
print(maxlength)
func(string)
输出示例
huaweicloudaigallery
9
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)