zoukankan      html  css  js  c++  java
  • 数组_leetcode3

    #coding=utf-8

    # 解题思路:
    # 滑动窗口问题: 字典的使用是关键 map hash 表的使用 20190302 找工作期间

    class Solution(object):
    def lengthOfLongestSubstring(self, s):
    """
    :type s: str
    :rtype: int
    """

    if s == "":
    return 0

    record = {}

    start = 0
    end = 0
    ans = 1

    res = 1


    record[s[start]] = start

    while end < len(s):

    if end+1 < len(s):

    if s[end+1] not in record:
    end += 1
    ans += 1
    record[s[end]]=end
    else:
    res = max(ans, res)

    newstart = record[s[end+1]]+1

    for i in range(start,newstart):
    record.pop(s[i])
    start = newstart
    end += 1
    record[s[end]] = end
    ans = end - start + 1

    if end == len(s)-1:
    ans = max(ans,res)
    return res

    class Solution2(object):
    def lengthOfLongestSubstring(self, s):

    temp = res = ""
    for item in s: # 对于字符串s中的每个字符
    if item not in temp: # 如果这个字符不在temp当中
    temp += item
    if len(temp) > len(res):
    res = temp
    else:
    i = temp.index(item) # 找到索引
    if i == len(temp) - 1:
    temp = item # 如果到达末尾
    else:
    temp = temp[i + 1:] + item # 没达到末尾
    if len(temp) > len(res):
    res = temp
    return len(res)



    st = "abcabcbb"
    # st = "pwwkew"
    # st = "au"

    s = Solution()

    print s.lengthOfLongestSubstring(st)
  • 相关阅读:
    我的公众号:WebHub
    The Qt Resource System
    Node.js Streams:你需要知道的一切
    2019春招前端面试预测题!
    BeamNG.drive物理引擎评鉴
    EcmaScript对象克隆之谜
    死锁与囚徒困境的辩证关系
    停止学习框架
    qt5android
    opencvKmeans图像分割根据颜色
  • 原文地址:https://www.cnblogs.com/lux-ace/p/10546840.html
Copyright © 2011-2022 走看看