#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn=1e6+5;
const ll MOD=1e9+7;
const int base=31;
int t;
string s;
ll Hash[maxn],Pow[maxn];
ll get(int i,int j)
{
return (Hash[j]-Hash[i-1]*Pow[j-i+1]+MOD*MOD)%MOD;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
Pow[0]=1;
for(int i=1;i<=1e6;i++) Pow[i]=(Pow[i-1]*base)%MOD;
cin>>t;
while(t--){
cin>>s;
int n=s.size();
s=" "+s;
for(int i=1;i<=n;i++){
Hash[i]=(Hash[i-1]*base+s[i]-'a'+1)%MOD;
}
int l=1,r=n,len=1,ans=0;
while(l+len-1<r-len+1){
if(get(l,l+len-1)==get(r-len+1,r)){
ans+=2;
l=l+len;
r=r-len;
len=1;
}
else len++;
}
if(l<=r) ans++;
cout<<ans<<'\n';
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |