首页 > 其他分享 >滑动窗口模板

滑动窗口模板

时间:2024-03-11 20:56:35浏览次数:27  
标签:字符 right 窗口 need 滑动 模板 left

适用情景:字符串或数组的子串或子数组

模板

def slidingWindow(s, t):
    need = {}  # 存储字符串 t 中各个字符的需求量
    window = {}  # 存储滑动窗口中各个字符的出现次数
    for c in t:  # 遍历字符串t
        need.setdefault(c, 0)  # 访问不存在的键时自动创建并将值设置为 0
        need[c] += 1  # 统计字符串 t 中各个字符的需求量

    left = 0  # 滑动窗口的左指针
    right = 0  # 滑动窗口的右指针
    valid = 0  # 记录满足需求的字符数
    while right < len(s):
        c = s[right]#c 是将移入窗口的字符
        right += 1#右移窗口
        # 进行窗口内数据的一系列更新
        #......

        # debug 输出的位置
        # print("window: [{}, {})".format(left, right))

        # 判断左侧窗口是否要收缩
        while (window needs shrink):
            d = s[left]#d 是将移出窗口的字符
            left += 1#左移窗口
            # 进行窗口内数据的一系列更新
            #......

标签:字符,right,窗口,need,滑动,模板,left
From: https://www.cnblogs.com/lushuang55/p/18067017

相关文章

  • 第六十九天 BBS项目之五 js与模板语法 inclusion_tag实操,文章详情,点赞点踩
    一、昨日内容回顾#1首页文章的渲染 -模板语法的for循环-bootstrap的媒体组-显示头像:articel.blog.userinfo有可能没有:在admin中建立关系 -注册---》申请开启博客功能-图标库 -font-awesome-4.7.0#2个人站点样式 -头部导航栏-......
  • 2024新版Axure RP大数据可视化大屏模板68套及通用组件+PSD文件
    AxureRP数据可视化大屏模板及通用组件库2024新版重新制作了这套新的数据可视化大屏模板及通用组件库V2版。新版本相比于V1版内容更加丰富和全面,但依然秉承“敏捷易用”的制作理念,这套作品也同样延续着我们对细节的完美追求,整个设计制作过程我们同样投入了大量的精力。作品制作前......
  • 慢慢学doris之【窗口函数】
    窗口函数也叫分析函数,可以用于自定义额外的查询字段,用于分析查询出来的数据。 举例说明,比如说现在有一个资讯浏览量的查询结果 其中sum_counts字段是根据日期分组然后累加的点击量,一般情况下,查询到这里也就差不多了。但是使用窗口函数还可以进一步分析得到的数据。比如,使用......
  • P5905 【模板】全源最短路(Johnson)
    原题链接题解发誓以后除了stl内置,其他时候结构体绝对不内置比较函数code#definelllonglong#include<bits/stdc++.h>usingnamespacestd;llin_q[3005]={0};llh[3005]={0};llvis[3005]={0};lldis[3003]={0};constllinf=1e9;struct{llto,val,head;}ed......
  • 如何在cmd窗口关闭情况下保持后台启动docsify?
    1.首先我们知道docsify的启动命令操作如下:1.1在docsify的主目录(index.html)下启动cmd命令1.2在当前路径下的cmd窗口执行docsify启动命令:docsifyserve1.3这样我们打开任意浏览器,在浏览器窗口输入如下命令,即可看到我们本地启动的docsify的界面http://127.0.0.1:3000/......
  • vue3 监听鼠标点击拖动事件,移动端滑动事件,页面指针坐标事件
    PointerEventsAPI是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(pen)三种事件整合为统一的API。Pointer指可以在屏幕上反馈一个指定坐标的输入设备。PointerEvent事件和TouchEventAPI对应的触摸事件类似,它继承扩展了TouchEvent,因此拥有TouchEven......
  • P3805 【模板】manacher
    https://www.luogu.com.cn/problem/P3805板子题比较模式的代码(书上整理):#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>#include<iomanip>#in......
  • 模板
    intBSGS(inta,intb){ inty=sqrt(p)+1; gp_hash_table<int,int>mp; intt=b; for(intn=0;n<=y;++n,t=Mul(t,a))mp[t]=n; inttmp=1; for(inti=1;i<=y;++i,tmp=Mul(tmp,a)); t=tmp; for(intm=1;m&l......
  • 蓝牛窗口定时切换置顶系统V1.00免费版
      蓝牛窗口定时切换置顶系统是一款合适各种活动和直播管理的软件,可以实现全自动按时间定时切换窗口或是按顺序切换切换窗口置顶,达到全自动无人操作。本地下载 ......
  • Java登陆第三十二天——ES6(一)let、const、模板字符串、解构表达式、箭头函数
    所谓ECMAScript6也就是JS6。这次更新带来了大量的新特性,使JS代码更简洁,更强大。复习JS请走:JS入门JS6文档请走:JS6菜鸟教程ES6新增了let和const关键字,用作声明变量let相较于var,let声明的变量更规范。ES6更推荐使用let。let不可重复声明let可以作为成员变量:(let遇见非函数......