八年级微机网站怎么做,网站开发后端有哪些,服饰 视频 网站建设,网站 流程力扣2156.查找给定哈希值的子串 rolling hash#xff1a;求带权的值 左边是高位 右边是低位 本题要求左边低位 只要反向求即可 class Solution {public:string subStrHash(string s, int power, int modulo, int k, int hashValue) {int n s.size();long long M modulo,p…力扣2156.查找给定哈希值的子串 rolling hash求带权的值 左边是高位 右边是低位 本题要求左边低位 只要反向求即可 class Solution {public:string subStrHash(string s, int power, int modulo, int k, int hashValue) {int n s.size();long long M modulo,pk1,hash 0;//预处理k个 并求出p^k-1for(int in-1;in-k;i--){hash ((long long)hash*power (s[i] - a 1)) % M;if(i ! n-k) pk (long long)pk*power%M;}int pos -1;if(hash hashValue) pos n-k;for(int in-k-1;i0;i--){//把右边高位减掉hash hash - (s[ik] - a 1) * pk % M;//防止hash减完成负数hash (hash M) %M;//整体左移(升高一位)hash hash * power % M;//加上左边低位hash (hash s[i]-a1) % M;if(hash hashValue){pos i;}}return s.substr(pos,k);}};