当前位置 博文首页 > 安安csdn的博客:LeetCode:第3题 无重复字符的最长子串 python

    安安csdn的博客:LeetCode:第3题 无重复字符的最长子串 python

    作者:[db:作者] 时间:2021-09-17 18:14

    给定一个字符串,请你找出其中不含有重复字符的?最长子串?的长度。

    示例?1:

    输入: "abcabcbb"
    输出: 3?
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    示例 2:

    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    示例 3:

    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是?"wke",所以其长度为 3。
    ?? ? 请注意,你的答案必须是 子串 的长度,"pwke"?是一个子序列,不是子串。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    Python函数参数中的冒号与箭头

    在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西?

    其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型

    更官方的解释:此为type hints,是Python 3.5新加的功能,作用如上所述,官方文档为?https://www.python.org/dev/peps/pep-0484/

    值得注意的是,类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。我认为类型建议符的作用更多的体现在软件工程方面:在多人合作的时候,我们对他人开发的代码并不熟悉,没有对类型的解释说明的话,往往需要花费更多的时间才能看出函数的参数和返回值是什么类型,有了说明符,可以方便程序员理解函数的输入与输出(具体涉及到的工作,比如静态分析与代码重构)。

    参考:https://www.cnblogs.com/ArsenalfanInECNU/p/10724203.html

    知识点:滑动窗口
    ##anan
    ##2020.1.31
    
    class Solution:
        # def lengthOfLongestSubstring(self, s: str) -> int:
        def lengthOfLongestSubstring(self, s):
            #print(s)
            sub = ''
            sub_len = len(sub)
            for i in range(len(s)):
                #print(s[i])
                for j in range(len(sub)):
                    if(s[i] == sub[j]):
                        sub = sub[j+1:]
                        #print("sub", sub)
                        break
                sub+=s[i]
                #print("final sub:", sub)
                sub_len = len(sub) if(len(sub) > sub_len) else sub_len
            #print("sub_len:", sub_len)
            return sub_len
    
    s = Solution()
    s.lengthOfLongestSubstring("abcabcbb")
    

    ?

    cs