Peter算法小课堂—哈希与哈希表

文章介绍了字符串的基本操作,如大小比较、输入方法(cin,getline,getchar,gets),以及哈希算法的应用,包括Hash、KMP和AC自动机在数字串匹配中的作用。还涉及到了取子串和哈希碰撞的概念,以及计算哈希冲突概率的方法。

额……字符串我们是第一次学,给大家铺一些基础的不能再基础的基础,

字符串比较大小

字符串大小的比较,不是以字符串的长度直接决定,而是从最左边第一个字符开始比较,大者为大,小者为小,若相等,则继续按字符串顺序比较后面的字符(比的是ASCII码)

字符串输入

cin

接受一个字符串,遇“空格”、“TAB”、“回车”都结束

cin.getline()

在一(二)维字符数组中,参数一即为字符数组名,参数二为元素个数。

cin.get()

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格。

getline()

接受一个字符串可以接受空格,遇换行结束。包含在string头文件中

getchar()

接受一个字符。包含头文件string

gets()

用法与cin.getline()一样只不过gets不带第三个参数。

OK!开始正题,来一道题吧。说一下,字符串三大杀器:Hash,KMP,AC自动机

数字串匹配1

这一题比较简单,但是……也有坑哦

错误代码:

#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
ull p[18]={1,1e1,1e2,1e3,1e4,1e5,
		   1e6,1e7,1e8,1e9,1e10,
		   1e11,1e12,1e13,1e14,1e15,1e16,1e17};
ull n,m,X,Y,cnt=0;
int main(){
	ci
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值