单词接龙 查看测评数据信息
输入n个英文单词,问他们是否可以按照某种排列构成单词接龙。
例如: n=3,"bat", "am", "tea"。
可以按照:bat-tea-am 构成单词接龙。
如果存在发案输出1,否则输出0。
输入格式
第一行1个正整数n,范围[2,12]。
下面n行是n个字符串,全是小写字母。
输出格式
1或0。
输入/输出例子1
输入:
2
this
hello
输出:
0
#include<bits/stdc++.h>
using namespace std;
int used[20];
string word[20];
string ans[20];
int N;
bool check(){
for (int i=1;i<=N;i++)
{
if(ans[i][ans[i].size()-1]!=ans[i+1][0])
return false;
}
return true;
}
bool per(int step){
if (step>N){
return true;
}
for (int j=1;j<=N;j++){
if (used[j]==0)
if(step==1 || ans[step-1][ans[step-1].size()-1]==word[j][0]){
used[j]=1;
ans[step]=word[j];
if(per(step+1))
return true;
used[j]=0;
}
}
return false;
}
int main(){
cin>>N;
for(int i=1;i<=N;i++)
{
cin>>word[i];
}
if(per(1))
cout<<"1";
else
cout<<"0";
return 0;
}