题目描述小G又在和同学玩游戏,他们制定了一个规则:
(1)一个人说一个单词
(2)后一个人说的单词的首字母是前一个人所说单词的结尾字母
(3)后一个人不能说前面人说过的单词
现在有n个人,给出每个人所说的单词
问:是否都遵守了规则?
输入给出一个n(n<=100)
接下来n个单词(单词长度不超过20)
输出都遵守了规则输出"Yes",否则输出"No"
样例输入4
hoge
english
hoge
enigma
样例输出No
#include<stdio.h>
#include<string.h>
#define n 110
int search(char s[n][n],int x);
int o(char s[n][n],int x);
int main(){
int x,k=0,flag=0,i,j,m=0;
char s[n][n];
memset(s,0,sizeof(s));
scanf("%d",&x);
for(i=0;i<x;i++){
scanf("%s",s[i]);
}
if(search(s,x)==0&&o(s,x)==0)printf("Yes\n");
else printf("No\n");
return 0;
}
int search(char s[n][n],int x) // 查找是否有相同的单词
{
int i,flag=0,j;
for(i=0;i<x;i++){
for(j=i+1;j<x-1;j++)
if(strcmp(s[i],s[j])==0)
{
flag=1; break;
}
}
return flag;
}
int o(char s[n][n],int x){ //首尾是否相同
int i,flag=0;
for(i=0;i<x-1;i++){
if(s[i][strlen(s[i])-1]!=s[i+1][0])
flag=1;
}
return flag;
}