输入包含多组测试数据。
对于每组测试数据,第一行为一个正整数n,代表有n个单词。
然后有n个字符串,代表n个单词。
保证:
2<=n<=200,每个单词长度大于1且小于等于10,且所有单词都是由小写字母组成。

 

 

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;

struct T{
    int a;
    int b;
}str[201];

bool cmp(T a,T b){
    return a.b<b.b;
}//按照b从小到大排序

int main(){
    int T,i,len;
    char s[15];
    while(scanf("%d",&T)!=EOF){
        
        for(i=0;i<T;i++){
            scanf("%s",s);
            len=strlen(s);
            str[i].a=s[0]-'a';
            str[i].b=s[len-1]-'a';
        }
        sort(str,str+T,cmp);
        int flag=1;
        for(i=1;i<T;i++){
            if(str[i].a!=str[i-1].b){
                flag=0;
                //printf("%d %d\n",str[i].a,str[i].b);
                break;
            }
        }
        if(flag==1)
            printf("Yes\n");
        else
            printf("No\n");
    }
}