func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<vector<int> > v;   vector<bool> vis;   string ans =   ;   void dfs(int temp) {     ans += temp +  a ;     for (auto it = v[temp].begin(); it != v[temp].end(); ++it) {       if (!vis[*it]) {         vis[*it] = true;         dfs(*it);       }     }   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     int t;     cin >> t;     while (t--) {       string s;       cin >> s;       v.resize(26);       vis.resize(26);       set<pair<char, char> > sc;       for (int i = 0; i < s.size() - 1; i += 1) {         pair<int, int> cc = {min(s[i], s[i + 1]), max(s[i], s[i + 1])};         if (sc.find(cc) == sc.end()) {           sc.insert(cc);           v[s[i] -  a ].emplace_back(s[i + 1] -  a );           v[s[i + 1] -  a ].emplace_back(s[i] -  a );         }       }       int cnt = 0, temp = 0;       for (int i = 0; i < 26; i += 1) {         if (v[i].size() == 1) {           temp = i;           cnt++;         } else if (v[i].size() > 2) {           cnt = -1;           break;         }       }       if (cnt != 2 && s.size() != 1)         cout <<  NO n ;       else {         cout <<  YES n ;         vis[temp] = true;         dfs(temp);         for (int i = 0; i < 26; i += 1) {           if (!vis[i]) ans += i +  a ;         }         cout << ans <<   n ;       }       ans =   ;       vis.clear();       for (int i = 0; i < 26; i += 1) v[i].clear();       v.clear();     }   }   