0
已解决
赵逸凡
初级启示者
初级启示者
题目描述 Description
酷町猫和她的好朋友酷町喵一起学习英语单词,她们一共学习了n个不同的单词,现在她们在一起玩单词接龙!
随着她们学过的词汇变多,所以在单词接龙的过程中,她们希望每个单词都要被并且只能被使用1次。
请你帮助她们判断能否做到。
输入描述 Input Description
多组测试数据,对于每组测试数据
第一行,一个正整数n,表示单词数
接下来n行,每行一个由小写字母组成的单词
输出描述 Output Description
对于每组测试数据,如果可以输出"yes",否则输出"no"
样例输入 Sample Input
3
a
ab
ba
4
a
ab
be
bc
样例输出 Sample Output
yes
no
数据范围及提示 Data Size & Hint
每组接龙,词语数不超过20
这道水题的正解应该是lyh所说的哈密尔顿回路模板题,他说可以把单词首看做一个结点,单词尾看做一个结点,然后通过输入给出的关系建立有向图,然而我是纯字符串模拟,按照题目的规则:不许出现重复单词、首尾必须相连
#include<iostream>
#include<string>
using namespace std;
int n,f;
string str[1000];
int main()
{
while(cin>>n)
{
getline(cin,str[1]);
for(int i=1;i<=n;i++)
getline(cin,str[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
if(j!=i&&str[i]==str[j])
{
f=1;
break;
}
}
for(int i=2;i<=n;i++)
if(str[i].substr(0,1)!=str[i-1].substr(str[i-1].size()-1,1))
{
f=1;
break;
}
if(f==1)
cout<<"no\n";
else
cout<<"yes\n";
f=0;
}
return 0;
}
处理cin的问题是按老师的方法用getline读掉回车符的,然而WA 88分
求帮助看哪里错了
赵逸凡在2020-08-12 20:52:07追加了内容
赵逸凡在2020-08-12 20:52:53追加了内容