#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 1e6 + 5, mod = 998244353, base = 727;
int p[maxn], f[maxn];
int get(int l, int r){
return ((f[r] - f[l - 1] * p[r - l + 1]) % mod + mod) % mod;
}
void solve(){
string s; cin >> s;
int n = s.size();
s = '#' + s;
for(int i = 1; i <= n; i++) f[i] = (f[i - 1] * base + s[i] - 'a' + 1) % mod;
int res = 1, ll = 1, lr = n;
for (int i = 1, j = n; i < j; i++, j--){
if (get(ll, i) == get(j, lr)){
res += 2;
ll = i + 1;
lr = j - 1;
}
}
if (ll - lr == 1) res--;
cout << res << '\n';
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
p[0] = 1;
for(int i = 1; i <= 1000000; i++) p[i] = (p[i - 1] * base) % mod;
int t; cin >> t;
while(t--) solve();
}
# | 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... |