首页 > 其他分享 >字符串hash

字符串hash

时间:2023-04-28 17:58:03浏览次数:38  
标签:hash str int long ull 字符串 include

#include<iostream>
#include<string>
#include<map>
using namespace std;

typedef unsigned long long ull;

const int N=1e4+10,P=131;

ull h[N],p[N];//注意ull,这样就不要有模数了 
string str;
void init()
{
    p[0]=1,h[0]=0;
    for(int i=1,j=str.size();i<j;i++)//下标从1开始,不是0 
    {
        h[i]=h[i-1]*P+str[i];//str字符串 
        p[i]=p[i-1]*P;//进制初始化 
    }
}

ull get(int l,int r)//得到某一区间的字符串哈希值 
{
    return h[r]-h[l-1]*(r-l+1);
}

bool check(int l1,int r1,int l2,int r1)
{
    return get(l1,r1)==get(l2,r2);
}

 

标签:hash,str,int,long,ull,字符串,include
From: https://www.cnblogs.com/bwdog/p/17362833.html

相关文章

  • VC中实现哈希Hash算法
       Hash函数我们可以自己用C来编写,但是如果在VC中就不必了,因为在VC中有实现hash算法的函数可以调用,就是CryptAcquireContext函数,这个函数的定义在wincrypt.h头文件中。下面是我在MFC中实现的,因为想要结果输出到messagebox中,所以就在视类里定义和实现了GetHash函数来计算哈希值......
  • Shodan的http.favicon.hash语法详解与使用技巧
    本文转载自:https://www.cnblogs.com/miaodaren/p/9177379.html在Shodan搜索中有一个关于网站icon图标的搜索语法,http.favicon.hash,我们可以使用这个语法来搜索出使用了同一icon图标的网站,不知道怎么用的朋友请参考我上一篇文章。通过上一篇文章我们了解到,由于ha......
  • 字符串的转化_1
    字符串(str/string)1.转换大小写:.upper/.lowervalue="alexshaobing"new_value=value.upper()#将value转换成大写,并形成新的值print(value,new_value)value="alexSHAOBING"#将value转换成小写,并形成新的值new_value=value.lower()print(value,new_value)#......
  • 列表和字符串的相互转换
    xm=['zhang3','li4','wang5','zhao6']a=','.join(xm)#用逗号连接列表里的内容a=''.join(xm)#用空格连接列表里的内容xm2=''foriinxm: xm2=xm2+i+''xm2=''.join([str(i)for......
  • hdoj 展开字符串 1274 (字符串递归) 好题
    展开字符串TimeLimit:2000/1000MS(Java/Others)   MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):2116   AcceptedSubmission(s):1017ProblemDescription在纺织CAD系统开发过程中,经常会遇到纱线排列的问题。该问题的描述是这样的......
  • c语言中,字符数组名 与 指向字符串常量的指针之间的关系
    chara[]="hello";//定义一个字符数组a,constchar*b="hello";//定义一个指向字符的指针b,指向字符串常量的第一个字符的首地址区别:a是一个指针常量,它本身的值不能修改,即char*consta;b是一个常量指针,它所指向的值不能修改,constchar*b;......
  • C语言处理特定字符串
    C语言处理特定字符串在使用NiosIDE实现串口助手向NiosII系统发送数据时,再将数据发送至FPGA逻辑模块,以此控制LED灯。在串口助手中发送14568936的数据,Nios接收到的数据是形如"14568936\r\n"的字符串,默认以\r\n结尾,要将此字符串转化为四个整型数据。#include<stdio.h>......
  • Python字符串比较
    python中的字符串之间比较是依次比较每个字符的原始值(ordinalvalue)的大小,可以使用ord0方法查看某个字符的原始值,直到两个字符串中的字符不相等时,后续字符将不再被比较print('xnjilhntm'=='xnjilhntm')#Trueprint('xnjilhntm'<'xnjilhntz')#True   ord('m') 109,ord('z......
  • 每日打卡java字符串
    importcom.ith.demo1.main;importcom.ith.demo1.phone;importjava.util.ArrayList;importjava.util.Scanner;importjava.util.StringJoiner;//PressShifttwicetoopentheSearchEverywheredialogandtype`showwhitespaces`,//thenpressEnter.Youcannows......
  • 1048. 最长字符串链
    题目描述给了一个单子数组words给了字母前身的定义:A在任何地方加一个字符,凑成B,A就是B的前身问从words中怎么选,能构成最长的词链?f1-记忆化搜索基本分析怎么找到子问题?假如s是词链的最后一个单词,那么枚举去掉s某位后的构成新的词s-1,s-1就是s的更小一级的子问题dfs怎么实现?......