ZZULIOJ 2397: 小G的日常之游戏(二)

题目描述小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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43731933/article/details/84348862