codeforces 126B Password(哈希)

问题:给出一个字符串s,求其最长的子串,即是s的前缀,也是s的后缀,同时存在于s的中间。

思路:rabin-karp算法,计算字符串前缀的哈希值。然后通过枚举可能的最长长度[1, len-1]的子串,其中len为字符串s的长度,先计算前缀及后缀的哈希值,如果不相同,说明不满足,继续遍历。如果相同,再枚举中间字符串的位置,看其哈希值是否与前缀哈希相等。具体代码参考:

https://github.com/wuli2496/OJ/blob/master/codeforces/126B%20-%20Password.cpp

猜你喜欢

转载自blog.csdn.net/wuli2496/article/details/120875670