#include <bits/stdc++.h>
using namespace std;
int n;
const int N=1100;
int g[N][N];
char a,b;
int d[N];
int cnt;
stack<int> q;
int ans=100000,ans1=0;
void dfs(int x) {
cnt++;
for (int i=ans; i<=ans1; i++) {
if (g[x][i]>0) {
g[x][i]--;
g[i][x]--;
dfs(i);
}
}
q.push(x);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >>n;
for (int i=1; i<=n; i++) {
cin>>a>>b;
g[a][b]++;
g[b][a]++;
d[a]++;
d[b]++;
ans=min(ans,min(int(a),int(b)));
ans1=max(ans1,max(int(a),int(b)));
}
int s=ans;
for (int i=1; i<=500; i++) {
if (d[i]%2==1) {
s=i;
break;
}
}
dfs(s);
if (cnt==n) cout<<"No Solution";
else {
while (!q.empty()) {
cout<<char(q.top());
q.pop();
}
}
return 0;
}
评测记录