首页 > 其他分享 >hash判断回文串

hash判断回文串

时间:2023-09-09 20:55:55浏览次数:43  
标签:checkL 判断 hash int 哈希 字符串 回文

hash的计算方法参考《字符串哈希

建立正反两向的字符串哈希数组

for (int i = 1; i <= n; i++) {
    p[i] = p[i - 1] * P;
    h[i] = h[i - 1] * P + str[i]; // 
}
for (int i = n; i >= 1; i--) {
    L[i] = L[i + 1] * P + str[i]; // 
}

如果某一段字符串正向的hash值和反向的hash值相同,则这一段字符串是回文串

ULL checkH(int l, int r) {
    return h[r] - h[l - 1] * p[r - l + 1];
}

ULL checkL(int l, int r) {
    return L[l] - L[r + 1] * p[r - l + 1];
}

if (checkH(l, r) == checkL(l, r)) {
	true;
} else {
	false;
}

标签:checkL,判断,hash,int,哈希,字符串,回文
From: https://www.cnblogs.com/-37-/p/17690120.html

相关文章

  • hashmap头插法和尾插法区别
    前言HashMap应该算是Java后端工程师面试的必问题,因为其中的知识点太多,很适合用来考察面试者的Java基础。开场面试官:你先自我介绍一下吧!安琪拉:我是安琪拉,草丛三婊之一,最强中单(钟馗不服)!哦,不对,串场了,我是**,目前在--公司做--系统开发。面试官:看你简历上写熟悉Java集合,Hash......
  • Python给你一个字符串,你怎么判断是不是ipv4地址?手写这段代码,并写出测试用例【杭州多测
    ipv4地址的格式:(1~255).(0 ~255).(0 ~255).(0 ~255)1.正则表达式importredefcheck_ip(one_str):compile_ip=re.compile('^(([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$')ifcompile_ip.match(one_str......
  • John:No password hashes left to crack (see FAQ)
    使用john--wordlist=/usr/share/wordlists/rockyou.txt文件名出现:Usingdefaultinputencoding:UTF-8Loaded1passwordhash(netntlmv2,NTLMv2C/R[MD4HMAC-MD532/64])Nopasswordhasheslefttocrack(seeFAQ)说明该文件已经被破解过,结果存放在john.pot中......
  • Redis五大基本数据类型之Hash哈希(转载)
    一、概述Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便: Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD: Hash类型的常见命令HSETkeyfieldvalue:......
  • 单词搜索 II(字典树、数组)、合并两个有序数组(数组、双指针)、验证回文串(双指针、字
    单词搜索II(字典树、数组)给定一个mxn二维字符网格board****和一个单词(字符串)列表words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一......
  • Vue 判断开始时间不能大于结束时间
    原文链接:https://blog.csdn.net/lzfengquan/article/details/119993515<template><div><el-formref="form":model="form"label-width="80px"><el-form-itemlabel="活动时间"><el-col:......
  • hashMap产生的循环依赖问题
    转:hashMap产生的循环依赖问题 这样就是一个很经典hashMap线程不安全导致的循环依赖,因为是个循环链表,就会导致数组一直重复扩容,导致集合的一个无限大,但是JDK1.8的时候,把头插法改成了尾插法,同时引进了红黑树,当连续扩容32次的时候会转换成红黑树,解决这个循环依赖的问题,但是还是......
  • 哈希hash
    将较大的内容转换成较小的值或数的算法有两种进行特定办法求值按照权值计算特定方法求值比方说,将\(x\)(\(1\)~\(10^{18}\)),不是用STL的情况下,判断出现几次。可以运用hash。inthashs(intx){//hash是关键词 return(x%Mod+Mod)%Mod;}按照权值计算令权......
  • 系统设计(架构师)指南5设计一致哈希(HASHING)
    5设计一致哈希(HASHING)要实现横向扩展,就必须在服务器之间高效、均匀地分配请求/数据。一致哈希是实现这一目标的常用技术。不过,首先让我们深入了解一下这个问题。5.1重散列(rehashing)问题如果有n台缓存服务器,平衡负载的常用方法是使用下面的散列方法:serverIndex=hash(key)%N......
  • 流程控制之if判断
    流程控制之if判断if判断分为三种,分别是if单分支结构,if双分支结构,if多分支结构if单分支结构:if就是如果的意思怎么使用if判断<代码块1>if<条件>:<代码块2>当条件为true的时候执行代码块2然后执行代码块3,否则不执行代码块2直接执行代码块3<代码块3>当条件为False时直接......