哈希法判断字符串回文
对一个字符串的子字符串,判断回文一般需要O(n)的时间,
但是如果预先处理出子字符串的哈希值,则可以在O(1)的时间判断。
具体方法是,如果是小写字母,则可以用26进制数进行记录。
base=26;
for(...)
ha[i]=ha[i-1]*base+(str[i]-'a');
再反着进行一次哈希过程
for(...)
ha2[i]=ha2[i+1]*base+(str[i]-'a');
则子串i~j的哈希值等于
ha[j]-ha[i-1]*pw[j-i]。
其中pw表示base^(i-j)。
但是此时哈希值会非常大,故可能自然溢出,题目的求解有风险。
多模数哈希是待了解的做法(没有风险)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人