《剑指Offer》刷题笔记——面试题48. 最长不含重复字符的子字符串

难度:中等

一、题目描述:

在这里插入图片描述

二、解题分析:

  用字典简历哈希表,当出现重复字符时,更新该字符所在索引和子串起始索引。

######  leetcode 代码主体 ######
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:

        start = -1
        max_len = 0
        d = {}

        # 對每個字元
        for i in range(len(s)):
            
            # 檢查字元是否第一次出現 和 位置是否大於指針

            if s[i] in d and d[s[i]] > start:
                
                start = d[s[i]]
                d[s[i]] = i

            # 沒有重複的字元
            else:
                d[s[i]] = i
                if i - start > max_len:
                    max_len = i - start

        return max_len 
###############################            
##### 模拟笔试 要写 输入、输出 ####   
#输入:
s = input()   #键盘输入,输入为字符
# 输出:
output = Solution()  
print(output.romanToInt(s))
发布了132 篇原创文章 · 获赞 154 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34108714/article/details/104735262