博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】最小覆盖子串
阅读量:2225 次
发布时间:2019-05-09

本文共 1002 字,大约阅读时间需要 3 分钟。

时间复杂度还是高,双指针有待优化

class Solution:    def minWindow(self, s: str, t: str) -> str:        se = set(list(t))                        p = []        ans = ""        maxn = len(s) + 1        from collections import defaultdict        last = defaultdict(list)        vis = defaultdict(int)        raw = defaultdict(int)        for i in range(len(t)):            raw[t[i]] += 1        for i in range(len(s)):                        if(s[i] in se):                                if(vis[s[i]] < raw[s[i]]):                    vis[s[i]] += 1                else:                    cur = last[s[i]][0]                    p.remove(cur)                       last[s[i]].remove(cur)                   last[s[i]].append(i)                p.append(i)                               if(len(p) == len(t)):                                st = p[0]                ed = p[len(p)-1]                if(ed - st + 1 < maxn):                    maxn = ed - st + 1                    ans = s[st:ed + 1]                   return ans

转载地址:http://bkmfb.baihongyu.com/

你可能感兴趣的文章
mybatis 根据 数据库表 自动生成 实体
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>