lone


私信TA

用户名:A1one

访问量:1294

签 名:

等  级
排  名 580
经  验 4291
参赛次数 0
文章发表 3
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:
两个HashMap

map1存以学号为key,性别为value

map2存以姓名为key,学号为value

查找时如果学号查找则直接在map1找,如果以姓名查找,则先在map2找查到学号


map1存以学号为key,性别为value

map2存以姓名为key,性别为value

姓名学号都是唯一的

注意事项:
第一种思路实现
参考代码:

import java.util.*;

public class Main{
    public static void main(String[]args){
		// TODO Auto-generated method stub
    	Scanner sc=new Scanner(System.in);
    	HashMap<Integer, Character> map1=new HashMap<Integer, Character>();
    	HashMap<String, Integer> map2=new HashMap<String, Integer>();
    	int n=sc.nextInt();
    	for(int i=0;i<n;i++)
    	{
    		String s=sc.next();
    		int id=sc.nextInt();
    		char c=sc.next().charAt(0);
    		map1.put(id, c);
    		map2.put(s, id);
    	}
    	int m=sc.nextInt();
    	for(int i=0;i<m;i++)
    	{
    		String a=sc.next();
    		String b=sc.next();
    		char c1,c2;
    		if(isNumber(a))
    			c1=map1.get(Integer.valueOf(a));
    		else
    			c1=map1.get(map2.get(a));
    		if(isNumber(b))
    			c2=map1.get(Integer.valueOf(b));
    		else
    			c2=map1.get(map2.get(b));
    		
    		if(c1!=c2)
    			System.out.println("Y");
    		else 
    			System.out.println("N");
    	}
    }  
    static boolean isNumber(String s)
    {
    	for(int i=0;i<s.length();i++)
    	{
    		if(!(s.charAt(i)>='0' && s.charAt(i)<='9'))
    			return false;
    	}
    	return true;
    }
}


 

0.0分

0 人评分

  评论区

  • «
  • »