#include <iostream>
using namespace std;
#define int long long
#define MOD 1000000007
#define B 31
void solve(){
string s;cin>>s;
int rasp=0,st=0,dr,hash1,hash2,put,i;
dr=s.size()-1;
while(st<=dr){
hash1=hash2=0;put=1;
do{
if(st>=dr){
rasp++;
st++;dr--;
break;
}
hash1=((s[st]-'a'+1)+hash1*B)%MOD;
hash2=((s[dr]-'a'+1)*put+hash2)%MOD;
st++;dr--;
put=(put*B)%MOD;
}while(hash1!=hash2);
if(hash1&& hash1==hash2){
rasp+=2;
}
}
cout<<rasp<<"\n";
}
signed main()
{
int t;
cin>>t;
while(t){
solve();t--;
}
return 0;
}
# | 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... |