zoukankan      html  css  js  c++  java
  • 无重复字符的最长子串

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

    示例:

    给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。

    给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。

    给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列  而不是子串。

    基本思路:将没有出现过的字符及其位置放入hash表中,并计数将s[i]与hash表中的字符对比,如果出现过,更新hash表中的位 置,并重新计数,最后输出最大数值

     1 class Solution:
     2     def lengthOfLongestSubstring(self,s):
     3         #基本思路:将没有出现过的字符及其位置放入hash表中,并计数
     4         # 将s[i]与hash表中的字符对比,如果出现过,更新hash表中的位
     5         # 置,并重新计数,最后输出最大数值
     6         res=0
     7         if s is None or len(s)==0:#如果字符串不存在或字符串为空的话
     8             return res #直接返回0
     9         ht={}
    10         temp=0
    11         start=0
    12         for i in range(len(s)):#循环字符串中的每个字符
    13             if s[i] in ht and ht[s[i]]>=start:#检查重复,
    14                 start=ht[s[i]]+1#记录当前字符串与hash表中重复字符的个数
    15             temp=i-start+1#记录hash表中字符个数
    16             ht[s[i]]=i#将没有出现过的字符及其位置存入hash表中
    17             res=max(res,temp)
    18         return res

    测试用例:

    1 s='pwwkew'
    2 b=Solution.lengthOfLongestSubstring(1,s)
    3 print(b)
  • 相关阅读:
    eaysui 引用 CSS和JS 文件
    在JSP 页面中 添加CSS 样式
    Spring Hello World
    jsp+jdbc
    eclipse插件开发:使用emf建模型时,需要注意模型的坐标和大小的保存
    eclipse插件开发:GEF 进阶: Viewer
    Asp.net之MsChart控件动态绑定温度曲线图
    根据图中的盲点坐标,弹出div层
    小结get和Post的区别
    使用JavaC编译一个Java文件
  • 原文地址:https://www.cnblogs.com/zhibei/p/9279581.html
Copyright © 2011-2022 走看看