#103. 子串查找

news/2023/12/1 1:31:16

题目描述:

这是一道模板题。

给定一个字符串 A 和一个字符串 B,求 B 在 A 中的出现次数。A 和 B 中的字符均为英语大写字母或小写字母。
A中不同位置出现的 B 可重叠。

输入格式:

输入共两行,分别是字符串 A 和字符串 B。

输出格式:

输出一个整数,表示 B 在 A 中的出现次数。

样例输入:

zyzyzyz
zyz

样例输出:

3

数据范围与提示:

1<=A,B的长度<=10^6,A,B仅包含大小写字母

模板题,hash函数思路:

我们选取两个合适的互质常数b,h(b小于h),假设字符串 C = c 1 c 2 . . . c m C=c_1c_2...c_m C=c1c2...cm,那么 H ( C ) = ( c 1 b m − 1 + c 2 b m − 2 + . . . + c m b 0 ) m o d h H(C)=(c_1b^{m-1}+c_2b^{m-2}+...+c_mb^0)modh H(C)=(c1bm1+c2bm2+...+cmb0)modh这里把b看作基数,相当于看作是b进制数,b取值应适宜.
而我们经过预处理 b 1 . . . b n b_1...b_n b1...bn和哈希值后,判断子串就为主串一段字符与匹配字符的哈希值是否相等,即 H ( C ′ ) = H ( C , k + n ) − H ( C , k ) ∗ b n H(C')=H(C,k+n)-H(C,k)*b^n H(C)=H(C,k+n)H(C,k)bn

预处理 b n b^n bn(注意开unsigned long long)

for(int i=1;i<=1000000;i++){bb[i]=bb[i-1]*b;}

主串哈希值

for(int i=1;i<=len1;i++){ahash[i]=ahash[i-1]*b+(unsigned long long)(s1[i]-'A'+1);}

模板代码

#include<bits/stdc++.h>
using namespace std;
unsigned long long bb[1000099],ahash[1119999],ss;
int n,b=11,ans=0;
char a;
char s1[1099999],ansa[1000999];
int main(){scanf("%s%s",s1+1,ansa+1);bb[0]=1;for(int i=1;i<=1000000;i++){bb[i]=bb[i-1]*b;}int len1=strlen(s1+1),len2=strlen(ansa+1);ahash[0]=0;for(int i=1;i<=len1;i++){ahash[i]=ahash[i-1]*b+(unsigned long long)(s1[i]-'A'+1);}for(int i=1;i<=len2;i++){ss=ss*b+(unsigned long long)(ansa[i]-'A'+1);}for(int i=0;i<=len1-len2;i++){if(ss==ahash[i+len2]-ahash[i]*bb[len2])ans++;}cout<<ans;return 0;
} 

http://www.ppmy.cn/news/460623.html

相关文章

win10添加自启的应用

在win10下添加自启的应用或者是脚本 打开文件夹C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp将exe文件或者是快捷方式或者是脚本文件放入该文件夹中 在任务管理器中查看启动的任务有没有

关闭windows10开机自启动程序的方法

文章目录 1.在电脑桌面按“win”“R”&#xff0c;弹出以下窗口2.在弹出的对话框中输入“cmd”&#xff0c;进入DOS窗口3.在DOS窗口输入“msconfig”之后按回车。4.点击回车之后&#xff0c;在弹出的窗口中选择“启动”并打开“任务管理器”5.在任务管理器中&#xff0c;即可对…

win10添加开机自启软件

1、winr打开终端&#xff0c;输入“shell:startup”即可进入开机启动文件夹 2、把要开机自启的软件的快捷方式&#xff0c;放到这个文件夹下面就可以了

win10启动项无法自启动

win10系统&#xff0c;之前将启动项加入 HKEY_CURRENT_USER\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run 可以自启动&#xff0c;但是现在不行了&#xff0c;后来多方查资料找到一个方法&#xff1a; 将启动项目加入 "hkey_local_machine\software\wow6432node…

【win10】 设置应用开机自启动

步骤如下&#xff1a; 1.按Win r键&#xff0c;输入 shell:startup 2.确定后会出现一个文件夹&#xff0c;把要开机启动的应用快捷方式放到里面 3.在任务管理器的启动里面进行设置 可以在状态字段选择启用或者禁用。放在文件夹里只是让它可以在任务管理器的启动里面显示出来…

windows10设置上电自启

需求&#xff1a;电脑一通电&#xff0c;则自动启动&#xff0c;进入系统。 步骤1&#xff1a;开机&#xff0c;不停点按Delete&#xff0c;进入BIOS 步骤2&#xff1a;找到Power Settings 步骤3&#xff1a;Power Loss选择On&#xff1b;RTC wakeup选择Fixed Time&#xff0…

《Win10——如何设置开机自启动项》

Win10——如何设置开机自启动项 1. 为需要自启动的程序创建快捷方式。 2. WinR输入“shell:startup”&#xff0c;按下回车键出现一个文件夹。 3. 将快捷方式拖入文件夹中。

windows10系统如何设置开机自启动

1.点击左下角windows图标----->设置 2.在设置页面&#xff0c;点击应用 3.点击左侧工具栏中的启动 4.通过开关来设置开机启动还是开机关闭

Win10如何打开/关闭软件自启动功能

之前钉钉安装的时候开启的开启自启动功能&#xff0c;我忘关了&#xff0c;之前还好自启动就自启动呗&#xff0c;但是现在看见钉钉就烦&#xff0c;我决定关闭钉钉的自启动功能。 如果你也想学学关闭软件自启动功能就来看看吧 步骤如下&#xff1a; 在桌面的任务栏中打开搜…

Windows设置程序开机自启动_设置程序开机自启动的几种方法_添加启动项

方法一 Win R 打开运行&#xff0c;输入&#xff1a;shell:startup 把要开机自启的程序文件或快捷方式复制到打开的窗口中即可 方法二 在运行中输入regedit打开注册表 打开&#xff1a;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 在空白处右键&g…

windows系统定时启动开机自启

前言 在做一些产品的时候&#xff0c;难免会有需要在某些操作系统做定时任务或开启启动的动作。 linux系统在做这些工作的时候是非常简单的&#xff0c;使用systemd将其加入service且enable 即可开机启动并且支持各种顺序&#xff0c;命令&#xff0c;集合启动等等可谓是功能强…

windows添加开机自启动

1. 打开运行&#xff0c;win10直接搜索”运行“&#xff0c;win7直接就可以运行 2. 在运行的框中输入shell:startup 3. 将需要自动启动的脚本或者快捷方式&#xff0c;直接放入打开的启动文件夹内&#xff1b; 4. 配置userpasswords2 打开cmd&#xff0c;输入“control userpa…

win10如何设置开机自启动应用

问题&#xff1a; win10如何设置开机自启动应用&#xff1f; 解决方案&#xff1a; WinR打开系统“运行”窗口&#xff0c;输入shell:startup拷贝需要开机启动的程序的快捷方式到此文件夹即可。打开任务管理器-启动查看启动项&#xff0c;看是否设置成功。

windows关闭开机自启动

如题&#xff0c;有时候windows软件会开机自动打开某些软件&#xff0c;当你不希望它开机自启动的时候&#xff0c;就需要进行设置不让它开机自动&#xff0c;下面介绍几个方法关闭开机自启动。 一、通过指令集进行设置 按下电脑上的windowsR&#xff0c;然后输入msconfig&…

WIN10软件开机自启动设置(基于win10系统,不依赖第三方软件)

开机启动项设置教程 第一步 winR打开运行窗口&#xff0c;输入命令msconfig&#xff0c;回车 第二步打开系统配置&#xff0c;切换到"启动"选项卡 第三步打开任务管理器 第四步单击选中想要禁止或者开启的软件 已启动代表开机时软件会自动启动 已禁用代表开机是软件…

Win11开机自启动配置

Win11添加开机自启动项方法 文件位置打开后&#xff0c;按win R&#xff0c;键入“shell:startup”&#xff0c;然后选择“确定”。这将打开“启动”文件夹。 将该应用的快捷方式从文件位置复制并粘贴到“启动”文件夹中。 转自知乎-魔法猪

Win10系统如何关闭开机自启动程序,看这里就够了,怎样关闭Windows10电脑自启动软件

现如今我们大家不论是生活中还是工作中运用电脑都是甚为广泛&#xff0c;对于电脑的操作&#xff0c;有人会把一些软件设置为开机自启动&#xff0c;如果当我们不需要自启动的时候怎样关闭自启动程序呢&#xff1f;不能自启动软件开一次你手动关一次吧&#xff0c;这样太麻烦了…

WIN10设置自启动脚本

刚想设置一个笔记本热点开机自启的操作 上网查询后发现需先把脚本文件放在C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup 目录下 1&#xff09;而在我的WIN10系统中开始时并为找到该目录 所以我选择了使用WINR运行窗口调用命令来打开系统启动文件夹 命令为&#…

win10 自启动设置无效

自启动 / 开机自动项 设置 两种失效的方法1. 任务管理器2. 在Startup目录中手动添加快捷方式 新方法注册表 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run中新增一个值。红色箭头所指的是一个描述&#xff0c;随便什么。为了好区分&#xff0…

Windows程序开机自启动

开机自启动的两种方式 在Windows中想要开机自启动某些应用&#xff0c;可以把程序的快捷方式放到开始菜单->程序->启动目录下&#xff0c;但是自启动又分为用户自启动和系统自启动&#xff0c;前者针对单个用户&#xff0c;后者针对全部用户生效&#xff0c;用户自启动目…
最新文章