• LeetCode——Problem3:Longest Substring Without Repeating Characters


    哎哟我天啊。这道题快折磨死我了。刚开始连题都没看明白,就是不知道substring是什么意思。研究了好长时间才看出来的。

    光辉历史呀。。。菜死了

    1、题目

    Given a string, find the length of the longest substring without repeating characters.

    Example 1:Input: "abcabcbb"      Output: 3      Explanation: The answer is "abc", with the length of 3.
    Example 2:Input: "bbbbb"         Output: 1       Explanation: The answer is "b", with the length of 1.
    Example 3:Input: "pwwkew"     Output: 3        Explanation: The answer is "wke", with the length of 3. Note that the answer must be a substring, "pwke" is a subsequence and not a substring.
     
    意思就是给一个字符串,找出最长的无重复子串。
    比如
    “abcabcbb”:他的无重复子串就是“abc”,“abc”,“b”
    “pwwkew”:它的无重复子串就是“pw”,“wke”,“kew”。最长的长度当然是3啦。而不是“pwke”。因为他要找的是子串,并不是要找的不重复序列。
    "dvdf":它的无重复子串就是“dv”,“vdf”
    说白了,就是一个字符一个字符的遍历,找出来没有重复字符的子字符串。
    只是为了看懂这个,就花了好多时间,菜死了。

    2、Python解法

    class Solution:
        def lengthOfLongestSubstring(self, s):
            """
            :type s: str
            :rtype: int
            """
            r=""   #储存无重复子串
            maxNum=0  #最大无重复子串的长度
            for i in s:
                if i not in r:           #如果不在子串里,就代表无重复,直接插进去
                    r=r+i
                else:                     #如果在子串里,就代表重复了,不能直接插进去
                    if len(r)>maxNum:maxNum=len(r)     #先算出来上一个子串的长度
                    r = r[r.index(i)+1:]+i          #把这个相同字符后面的保留。比如"dvdf"。第一个子串是"dv",再遍历到d的时候,需要把第一个d后面的v保留,再形成一个"vd"子串,这样还是无重复子串。不保留v的话,就不是一个完整的无重复子串了
            if len(r) > maxNum: maxNum = len(r)
            return maxNum
    
    s="dvdf"
    a=Solution()
    print(a.lengthOfLongestSubstring(s))
     我的解释代码里面写的很清楚。
    运行效果还不错

    C语言版的先不写了吧,我已经花了快两个小时了。按照这个思路写,完全没问题。

     
  • 相关阅读:
    ubuntu下环境变量
    Linux/Unix里,ln -s
    ubuntu安装和查看已安装
    Android系统中 setprop,getprop,watchprops命令的使用
    js中Math.random()生成指定范围数值的随机数
    mysql下sql语句 update 字段=字段+字符串
    铁道部2012年版全国72个铁路枢纽城市
    phprpc 使用实例(例实没错却不能执行)函数冲突gzdecode
    电脑开机一直蓝屏,一直重启要怎么办?
    电脑重装系统重装不了,老是蓝屏,是不是硬盘烧坏了!
  • 原文地址:https://www.cnblogs.com/albert-yzp/p/9695107.html
Copyright © 2020-2023  润新知