为了写题解有新意于是写了个BFS暴搜求优化
#include<bits/stdc++.h>
using namespace std;
string s;
map<string,bool> vis;
queue<string> q;
int main()
{
ios::sync_with_stdio();
cin.tie(0);
cin>>s;
q.push(s);
vis[s]=1;
while(!q.empty())
{
string x=q.front();
q.pop();
for(int i=0;i<3-1;i++)
{
for(int j=i+1;j<3;j++)
{
if(i==j)
{
continue;
}
string t=x;
swap(t[i],t[j]);
if(t=="ABC")
{
cout<<"Yes";
return 0;
}
else if(vis[t]!=1)
{
q.push(t);
vis[t]=0;
}
}
}
}
cout<<"No";
return 0;
}