题目描述:
牛牛很喜欢玩接龙游戏,一天他突发奇想,发明了一种叫做“字符串链”的游戏。 这个游戏的规则是这样的,给出3个字符串A,B,C,如果它们满足以下两个条件,那么就可以构成一个“字符串链”:
1.A的最后一个字母和B的第一个字母相同;
2.B的最后一个字母和C的第一个字母相同。
现在牛牛给出了3个字符串A,B,C,希望你能判断这3个字符串能否构成一个“字符串链”,若能则输出“YES”,否则输出“NO”。
输入描述:
一行,3个字符串,每两个字符串之间用一个空格分隔。
1.A,B,C均由小写的英文字母组成;
2.1≤|A|,|B|,|C|≤10,|A|,|B|,|C|分别表示A,B和C的长度。
输出描述:
“YES"或者"NO”(不带引号)
示例1
输入
b bb b
输出
YES
示例2
输入
a b c
输出
NO
分析:
其实只要判断第一个字符串的最后一个字符是否等于第二个字符串的第一个字符,第二个字符串的最后一个字符是否等于第三个字符串第一个字符即可。其中判断大小写以及字符长度的判别是很简单的这里就不在赘述了。
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
while(scan.hasNext()){
String str1 = scan.next();
String str2 = scan.next();
String str3 = scan.next();
System.out.println(isStringLink(str1,str2,str3));
}
scan.close();
}
public static String isStringLink(String str1, String str2, String str3) throws Exception {
//将字符串转换成字符数组。
char[] ch1 = str1.toCharArray();
char[] ch2 = str2.toCharArray();
char[] ch3 = str3.toCharArray();
//判断是否为大小写。
for(int i = 0; i<ch1.length;i++){
if(ch1[i]>'z'||ch1[i]<'a'){
throw new RuntimeException("输入有误!!!");
}
}
for(int i = 0; i<ch2.length;i++){
if(ch2[i]>'z'||ch2[i]<'a'){
throw new Exception("输入有误!!!");
}
}
for(int i = 0; i<ch3.length;i++){
if(ch3[i]>'z'||ch3[i]<'a'){
throw new Exception("输入有误!!!");
}
}
//判断是否是字符串链。
if(ch1[ch1.length-1]==ch2[0] && ch2[ch2.length-1] == ch3[0])
return "YES";
else
return "NO";
}
}
欢迎大家批评指正。