[C++][算法基础]字符串哈希(哈希表)

给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。

字符串中只包含大小写英文字母和数字。

输入格式

第一行包含整数 n 和 m,表示字符串长度和询问次数。

第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。

接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。

注意,字符串的位置从 1 开始编号。

输出格式

对于每个询问输出一个结果,如果两个字符串子串完全相同则输出 Yes,否则输出 No

每个结果占一行。

数据范围

1≤n,m≤10^{5}

输入样例:
8 3
aabbaabb
1 3 5 7
1 3 6 8
1 2 1 2
输出样例:
Yes
No
Yes

代码:

#include<iostream>
#include<cstring>
using namespace std;const int N = 100010,P = 131;
char str[N];
int n,m;
int a1,a2,b1,b2;
unsigned long long h[N],p[N];unsigned long long getstr(int l,int r){return h[r] - h[l-1]*p[r-l+1];
}int main(){cin>>n>>m;cin>>str+1;p[0] = 1;for(int i = 1;i<=n;i++){p[i] = p[i-1]*P;h[i] = h[i-1]*P + str[i];}while(m--){cin>>a1>>a2>>b1>>b2;if(getstr(a1,a2) == getstr(b1,b2)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 应用开发-边缓存边播放案例

介绍 OhosVideoCache是一个支持边播放边缓存的库&#xff0c;只需要将音视频的url传递给OhosVideoCache处理之后再设置给播放器&#xff0c; OhosVideoCache就可以一边下载音视频数据并保存在本地&#xff0c;一边读取本地缓存返回给播放器&#xff0c;使用者无需进行其他操作…

Android Telephony框架

目录 一、简介二、应用层(Application)三、框架层(Framework)四、本地 RIL 层(RIL)五、驱动层(Modem)六、整体框架 一、简介 无论手机发展到如何智能的程度&#xff0c;最关键和重要的功能仍然是通讯&#xff0c;具体来说就是打电话、发短信、上网功能的使用。而整个 Android …

Centos 7 安装通过yum安装google浏览器

在CentOS 7上使用yum安装Google Chrome浏览器稍微复杂一些&#xff0c;因为Chrome并不直接包含在默认的Yum仓库中。按照以下步骤来操作&#xff1a; 1、添加Google Chrome仓库 首先&#xff0c;您需要手动添加Google Chrome的Yum仓库。打开终端&#xff0c;并使用文本编辑器&a…

MySQL高可用搭建方案MHA

MHA架构介绍 MHA是Master High Availability的缩写&#xff0c;它是目前MySQL高可用方面的一个相对成熟的解决方案&#xff0c;其核心是使用perl语言编写的一组脚本&#xff0c;是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中&am…

使用 AI 生成正则表达式,告别正则烦恼

如果你有处理正则表达式的需求&#xff0c;那么这个网站&#xff08;autoregex.xyz&#xff09;一定要收藏好。 可以根据文字描述生成正则表达式。 默认是从文字到正则&#xff0c;不用选择。 输入框中输入描述&#xff0c;点击 ”GO“ 按钮。 等待一会儿&#xff0c;即可生…

get请求搜索功能爬虫

<!--爬虫仅支持1.8版本的jdk--> <!-- 爬虫需要的依赖--> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency>…

mos管开关出现尖峰的原理? mos管开关的时候cs会出现尖峰,请问这是什么原因?

MOS管在开关过程中出现尖峰现象&#xff0c;通常是由于电路中的寄生参数和快速电压变化引起的。以下是一些导致尖峰出现的主要原因和原理&#xff1a; 寄生电容 在MOS管的源极&#xff08;S&#xff09;和漏极&#xff08;D&#xff09;之间存在寄生电容&#xff0c;这个电容在…

面试总结------2024/04/04---项目

1.面试官提问&#xff1a;你说你在项目中使用springsecurity jwt 实现了登录功能&#xff0c;能简单讲一下怎么实现的吗&#xff1f; 2.使用RabbitMQ实现订单超时取消功能 redis实现的劣势 订单状态定义 首先&#xff0c;我们需要定义订单的不同状态。在这个示例中&#xf…

【Java】单例模式

单例模式是面试中常考的设计模式之一 在面试中&#xff0c;面试官常常会要求写出两种类型的单例模式并解释原理 本文中&#xff0c;将从0到1的介绍单例模式究竟是什么 文章目录 ✍一、什么是设计模式&#xff1f;✍二、单例模式是什么&#xff1f;✍三、单例模式的类型**1.饿汉…

线上研讨会 | 新一代数字化技术赋能机器人及智能产线行业高质量发展

随着智能制造的快速推进&#xff0c;制造业转型升级到了关键阶段。越来越多的企业以数字化技术搭配智能机器人及智慧产线&#xff0c;主动实现数字化转型。达索系统3D体验平台是实现企业数字化转型的新一代数智化平台&#xff0c;基于型、数字驱动、数字化连续技术&#xff0c;…

【深度学习基础】

打基础日常记录 CNN基础知识1. 感知机2. DNN 深度神经网络&#xff08;全连接神经网络&#xff09;DNN 与感知机的区别DNN特点&#xff0c;全连接神经网络DNN前向传播和反向传播 3. CNN结构【提取特征分类】4. CNN应用于文本 RNN基础1. RNN的本质 词向量模型word2Vec1. 自然语言…

Selenium与Metamask钱包及DApp交互及验证码破解汇总

1.LavaMoat报错: selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.callFunctionOn threw exception: Error: LavaMoat...`报错原因: 根本原因是Metamask为了用户钱包安全,而将LavaMoat 设置为了全局不可用。 报错解析文章链接: https:/…

城市定量分析学习资料大数据 gis 空间句法 Python

城市定量分析学习资料大数据 gis 空间句法 Python

Ubuntu 20.04.06 PCL C++学习记录(十六)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 用一组点云数据做简单的平面的分割 源代码及所用函数 源代码 #include<iostr…

IP地址到底有什么用

IP地址在计算机网络中的作用至关重要&#xff0c;它不仅是设备在网络中的唯一标识&#xff0c;更是实现网络通信、网络管理和安全的关键要素。下面&#xff0c;我们将从多个方面详细阐述IP地址的作用。 首先&#xff0c;IP地址作为设备的唯一标识&#xff0c;为网络通信提供了…

JavaScript - 你做过字符串反转吗

难度级别:初级及以上 提问概率:65% 例如有一个字符串本来是“abcde”,那么现在希望可以将其反转,最终的值是“edcba”,该如何做呢? 第一种是将字符串转为数组,利用数组的reverse方法实现元素反转,然后再将数组转为字符串,代码如下 …

面试必问!鸿蒙开发中的FA模型和Stage模型是什么?他们分别有什么区别?

鸿蒙OS&#xff08;HarmonyOS&#xff09; 是面向全场景的分布式操作系统&#xff0c;它通过创新的应用模型&#xff0c;为开发者提供了强大的应用开发框架。 在HarmonyOS的发展过程中&#xff0c;FA模型&#xff08;Feature Ability&#xff09;和Stage模型是两种重要的应用模…

静电场概述

什么是静电场 静电场是由特殊的电荷引起场。 这个特殊的电荷指&#xff1a;相对于观察者静止、且电量不随时间改变的电荷。 库仑定律 指在无限大的真空中&#xff0c;当两个静止的小带电体之间的距离远远大于本身的几何尺寸时&#xff0c;该两带电体之间的作用力。 如图所示…

二分查找 -- 力扣(LeetCode)第704题

题目 https://leetcode.cn/problems/binary-search/description/ 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例…

JavaScript代码小挑战

题目如下&#xff1a; 朱莉娅和凯特正在做一项关于狗的研究。于是&#xff0c;她们分别询问了 5 位狗主人他们的狗的年龄&#xff0c;并将数据存储到一个数组中&#xff08;每人一个数组&#xff09;。目前&#xff0c;她们只想知道一只狗是成年狗还是小狗。如果狗的年龄至少为…