【编程题】判断字符串数组连成圈(java实现)(拼多多笔试题)
题目来源
拼多多2019年笔试题
题目描述
判断字符串数组能否连成圈。
例如 ab bcd dca 可以
输入 字符串数组
输出 “ true "或 " false "
解答
思路 判断头字符和尾字符个数是否相同 , 再判断是否为同一个串的首和头相同,相同则必须为偶数
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main7 {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] A=sc.nextLine().split(" ");
Map<Character,Integer> mapleft=new HashMap<>();
Map<Character,Integer> mapright=new HashMap<>();
for(int i=0;i<A.length;i++){
if(mapleft.containsKey(A[i].charAt(0))){
mapleft.put(A[i].charAt(0),mapleft.get(A[i].charAt(0))+1);
}
else
mapleft.put(A[i].charAt(0),1);
if(mapright.containsKey(A[i].charAt(A[i].length()-1))){
mapright.put(A[i].charAt(A[i].length()-1),mapright.get(A[i].charAt(A[i].length()-1))+1);
}
else
mapright.put(A[i].charAt(A[i].length()-1),1);
}
for(Map.Entry<Character,Integer>m:mapleft.entrySet()){
if(m.getValue()==mapright.get(m.getKey()))
continue;
else {
System.out.println("false");
return;
}
}
for(int i=0;i<A.length;i++){
if(A[i].charAt(0)==A[i].charAt(A[i].length()-1)&&A.length>1&&mapleft.get(A[i].charAt(0))%2!=0)
{
System.out.println("false");
return;
}
}
System.out.println("true");
}
}