哈希重学
哈希不仅可以进行判重,还可以判断字符串的差异。
常用的套路就是先预处理出哈希值的 \(1-n\) 次方和每个字符串的哈希值 \(F[i]\),判断某两个字符串是否相差一个或几个字母就相同的话:
设两个字符串分别为 \(s_a\) 和 \(s_b\),要判断除去 \(s_a\) 的第 \(i\) 位和去除 \(s_b\) 的第 \(j\) 位之后是否相等,则若 \(s_a-F[n-i]\times c_a=s_b-F[n-j]\times c_b\),则相等。
哈希不仅可以进行判重,还可以判断字符串的差异。
常用的套路就是先预处理出哈希值的 \(1-n\) 次方和每个字符串的哈希值 \(F[i]\),判断某两个字符串是否相差一个或几个字母就相同的话:
设两个字符串分别为 \(s_a\) 和 \(s_b\),要判断除去 \(s_a\) 的第 \(i\) 位和去除 \(s_b\) 的第 \(j\) 位之后是否相等,则若 \(s_a-F[n-i]\times c_a=s_b-F[n-j]\times c_b\),则相等。