单词接龙 输入n个英文单词,问他们是否可以按照某种排列构成单词接龙。
例如: n=3,"bat", "am", "tea"。
可以按照:bat-tea-am 构成单词接龙。
如果存在发案输出1,否则输出0。
输入格式 第一行1个正整数n,范围[2,12]。
下面n行是n个字符串,全是小写字母。
输出格式 1或0。
本蒟蒻的代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[15],b;
string x[15],s[15];
bool ok(){
for(int i=1;i<n;i++){
string q=s[i],p=s[i+1];
if(q[q.size()-1]!=p[0])
return false;
}
return true;
}
int perm(int k){
if(k==n+1&&ok()){
return 1;
}
for (int i=1;i<=n;i++)
if (a[i]==0){
a[i]=1;
s[k]=x[i];
if(perm(k+1))
return 1;
a[i]=0;
}
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x[i];
}
cout<<perm(1);
return 0;
}
50分TLE 球球了QwQ