有以下两处错误:
x = x * x % mod;
n>>=1;

for(int i = 1 ;i<=len;i++){
    H[i]=H[i-1]*(Hstr[i-1]-28)%mods;