func_code_string: #include <bits/stdc++.h>   using namespace std;   using namespace rel_ops;   const int inf = ~0u >> 2;   const long long INF = ~0ull >> 2;   const double err = 1e-11;   const double pi = acos(-1);   inline long long read() {     long long x;     if (scanf( %lld , &x) == -1) exit(0);     return x;   }   inline double readf() {     double x;     if (scanf( %lf , &x) == -1) exit(0);     return x;   }   template <typename _>   inline _ sqr(_ x) {     return x * x;   }   ostream &operator<<(ostream &o, const pair<int, int> &x) {     return o <<  (  << x.first <<  ,  << x.second <<  ) ;   }   mt19937 rnd(time(0));   const int N = 20010;   const int mod = (0 ? 1000000007 : 998244353);   long long T;   string s;   deque<char> a;   set<char> Set;   signed main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cin >> T;     while (T--) {       cin >> s;       Set.clear();       a.clear();       long long i = 0, f = 1;       for (auto c : s) {         if (Set.empty()) {           Set.insert(c);           a.push_back(c);           continue;         }         if (Set.count(c)) {           if (i != 0 && a[i - 1] == c) {             i--;             continue;           }           if (i != (long long)a.size() - 1 && a[i + 1] == c) {             i++;             continue;           }           f = false;         } else {           if (i == 0) {             a.push_front(c);             Set.insert(c);             continue;           }           if (i == (long long)a.size() - 1) {             a.push_back(c);             Set.insert(c);             i++;             continue;           }           f = false;         }       }       if (f) {         cout <<  YES  << endl;         for (long long i = ( a ), _ = ( z  + 1); i < _; i++)           if (!Set.count(i)) {             a.push_back(i);           }         for (auto i : a) cout << char(i);         cout << endl;       } else         cout <<  NO  << endl;     }     return 0;   }   