注解
1、并查集模板题
2、注意union在c++里是个关键字,不要使用这个函数名!
代码
#include <iostream>
using namespace std;
int p[27];
void init() {
for(int i=1; i<27; i++) {
p[i] = i;
}
}
int judge(int x, int y) {
while(x!=p[x]) {
if(p[x]==y) {
return 1;
}
x = p[x];
}
return 0;
}
void Union(int x, int y) {
if(x!=y) {
p[y] = x;
}
}
int main() {
string s;
while(cin>>s) {
init();
while(s.compare("0")) {
int start = s.at(0)-'a'+1;
int end = s.at(s.length()-1)-'a'+1;
Union(start, end);
cin>>s;
}
if(judge(13, 2)) {
cout<<"Yes."<<endl;
} else {
cout<<"No."<<endl;
}
}
return 0;
}