func_code_string: #include <bits/stdc++.h>   using namespace std;   using namespace std;   string best;   void LongestPalindromicPrefix(string str) {     string temp = str +  ? ;     reverse(str.begin(), str.end());     temp += str;     int n = temp.length();     int lps[n];     fill(lps, lps + n, 0);     for (int i = 1; i < n; i++) {       int len = lps[i - 1];       while (len > 0 && temp[len] != temp[i]) {         len = lps[len - 1];       }       if (temp[i] == temp[len]) {         len++;       }       lps[i] = len;     }     if (best.length() < lps[n - 1]) {       best = temp.substr(0, lps[n - 1]);     }   }   int solve() {     int n, i, j;     best.erase();     string s;     cin >> s;     n = s.length();     i = 0, j = n - 1;     string temp;     long long ans = 0;     while (s[i] == s[j] && i <= j) {       temp.push_back(s[i]);       i++;       j--;       ans++;       if (i != j) {         ans++;       }       if (i >= j) {         break;       }     }     int k;     string res;     for (k = i; k <= j; k++) {       res.push_back(s[k]);     }     if (res.length() == 0) {       cout << s <<   n ;       return 0;     }     cout << temp;     LongestPalindromicPrefix(res);     reverse(res.begin(), res.end());     LongestPalindromicPrefix(res);     cout << best;     reverse(temp.begin(), temp.end());     cout << temp <<   n ;     return 0;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int t = 1;     cin >> t;     while (t--) {       solve();     }     return 0;   }   