10.hash表

hash 表

Hash 表又称散列表,一般由 Hash 函数与链表结构共同实现。

有一种称为开散列的解决方案是,建立一个邻接表结构,以Hash 函数的值域作为表头数组,映射后的值相同的原始信息被分到同一类。

1688119985448

在这里插入图片描述

###采用hash表+链表

1688120447339

字符串的最小表示法

判断是否有相同雪花的方式就是直接暴力枚举就好
若只有旋转操作,可以用字符串的最小表示:
字符串长度为n,旋转n次,取字典序最小的那一种,即为字符串的最小表示。
现在有翻转操作,所以我们对原序列求最小表示,再对翻转后的序列求一个最小表示

再排序

字符串hash

将一个任意长度的字符串映射为一个非负整数,并且其冲突概率几乎为零。

1688121042532

在这里插入图片描述

这道其实就是上面思路的一个模板题。

回文子串的最大长度

在这里插入图片描述

我们可以算出一个前缀和,再算出一个后缀和,然后就可以知道,正字符串和一个反字符串.字符串的哈希值就是这个区间的哈希值和.算完之后,我们当前就只需要枚举一个mid中间点,因为所有回文串都是有一个中间点(奇),或者中间区间(偶),然后二分分别寻找这个字符串长度即可,记住不是回文串,回文串的长度,是 字符串长度×2 + 1(奇) 或者是 字符串长度×2(偶数).

------ 本文结束感谢您的阅读 ------
请我一杯咖啡吧!
itingyu 微信打赏 微信打赏