• [LeetCode][Python]Longest Substring Without Repeating Characters


    # -*- coding: utf8 -*-
    '''
    __author__ = 'dabay.wang@gmail.com'
    https://oj.leetcode.com/problems/longest-substring-without-repeating-characters/

    Given a string, find the length of the longest substring without repeating characters.
    For example, the longest substring without repeating letters for "abcabcbb" is "abc",
    which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.

    ===Comments by Dabay===
    维护一个变量max_so_far来记录到目前为止最大的不重复字符串长度,同时维护一个字符串,这个字符串必须包含正在检查的字符。
    因为这个字符串可能继续增长,当长度超过max_so_far时,更新max_so_far。
    '''
    class Solution:
    # @return an integer
    def lengthOfLongestSubstring(self, s):
    if len(s) <= 1:
    return len(s)
    max_so_far = 0
    longest = ""
    for char in s:
    if char in longest:
    longest = longest[(longest.index(char))+1:] + char
    else:
    longest = longest + char
    max_so_far = max(max_so_far, len(longest))
    return max_so_far


    def main():
    s = Solution()
    string = "abcabcbb"
    print s.lengthOfLongestSubstring(string)


    if __name__ == "__main__":
    import time
    start = time.clock()
    main()
    print "%s sec" % (time.clock() - start)
  • 相关阅读:
    如何统计一个字符串中某个字符出现的次数
    从GitHub克隆项目到本地
    nginx能做什么
    dubbo的使用实例
    zookeeper单机安装
    Http发送post(x-www-form-urlencoded)请求
    集群与分布式的区别
    cas的客户端应用是负载均衡,单点退出怎么办?
    mybatis执行DDL语句
    sql server 行列互换
  • 原文地址:https://www.cnblogs.com/Dabay/p/4217582.html
Copyright © 2020-2023  润新知