单词接龙

百度机试题

[编程题] 单词接龙
拉姆刚开始学习英文单词,对单词排序很感兴趣。
如果给拉姆一组单词,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一单词的为字母相同。
你能编写一个程序来帮助拉姆进行判断吗?
输入描述:

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

输出描述:

对于每组数据,输出"Yes"或"No"


输入例子:
  3
  abc
  cdefg
  ghijkl
  4
  abc
  cdef
  fghijk
  xyz
  

输出例子:
  Yes
  No
#include<iostream>
#include<string>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        string s1;
        cin>>s1;
        if(n==1){
            cout<<"Yes"<<endl;
            continue;
        }
        bool flag=true;
        for(int i=2;i<=n;++i){
            string s2;
            cin>>s2; 
            if((flag==false) || (s1.size()==0) || (s2.size()==0) || (s1[s1.size()-1]!=s2[0]) )
                flag=false;
        }
        if(flag) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    return 0;
}

 

posted @ 2016-07-31 09:41  hopskin1  阅读(352)  评论(0编辑  收藏  举报