Python (窗口滑动)求无重复字符串的最长算法
描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
整体思路:
利用窗口滑动,设定两个下标为i和j,把多有的字符存在字典中,如果出现已经重复的字典,则把i的位置移到重复元素位置,然后找出最长字符串
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
result_dict = {}
i, ins = 0, 0
for j in range(len(s)):
if s[j] in result_dict:
i = max(result_dict[s[j]], i)
ins = max(ins, (j-i+1))
# 当出现重复出现在result_dict字符时,把i的坐标移到j + 1,这种情况是在下一次的for循环中,所以是j+1
result_dict[s[j]] = j + 1
return ins

浙公网安备 33010602011771号