百度2017暑期实习生编程题单词接龙

来源:互联网 发布:js实现倒计时 编辑:程序博客网 时间:2024/05/16 11:24
拉姆刚开始学习英文单词,对单词排序很感兴趣。
如果给拉姆一组单词,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一单词的为字母相同。
你能编写一个程序来帮助拉姆进行判断吗?

输入描述:

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



输出描述:

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


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

输出例子:
  Yes  No  

import java.util.HashMap;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

HashMap<Integer, String> map = new HashMap<>();

while (in.hasNextInt()) {// 注意while处理多个case

int n = in.nextInt();

for (int i = 0; i < n; i++) {

// list.add(in.next());

map.put(i, in.next());

}

isTrue(map);

}

}

private static void isTrue(HashMap<Integer, String> map) {

String str = "";

String str2 = "";

for (int i = 0; i < map.size() - 1; i++) {

str2 = map.get(i);

str = map.get(i + 1);

String index = str.substring(0, 1);

int size = str2.length();

String last = str2.substring(size - 1, size);

if (!last.equals(index)) {

System.out.println("No");

return;

}

// System.out.println(index+" "+last);

}

System.out.println("Yes");

}

}

0 0
原创粉丝点击