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

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

    示例:

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

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

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

    解题思路:

    1. 给两个数组分别存储最长子串和当前子串

    2.遍历字符串,只要字符不在当前子串中就添加进去

    3.判断当前子串跟最长子串的长度,如果当前串大于最长串,就把最长串替换掉

    4.如果字符在当前串存在,就以这个字符在当前串的位置进行切片,切片完成再添加这个字符

    class Solution:
        def lengthOfLongestSubstring(self, s):
            """
            :type s: str
            :rtype: int
            """
            cur_str = [];
            sum_str = [];
            for i in s:
                if not i in cur_str:
                    cur_str.append(i)
                else:
                    cur_str = cur_str[cur_str.index(i)+1:]
                    cur_str.append(i)
                if len(cur_str) > len(sum_str):
                    sum_str = cur_str
            return len(sum_str)
    

      

  • 相关阅读:
    centos pptp client 配置
    hadoop hdfs 权限修改
    cdh Host Monitor 启动失败
    cdh yarn 启动失败
    hive 存储
    docker修改默认存储位置
    centos新增磁盘
    zookeeper服务部署数量
    实时人群计算——设想
    docker容器多服务——Supervisor
  • 原文地址:https://www.cnblogs.com/dreamyu/p/9132371.html
Copyright © 2011-2022 走看看