蓝桥杯ALGO-94——算法训练 新生舞会

 算法训练 新生舞会  

时间限制:1.0s   内存限制:512.0MB

    

问题描述
  新生舞会开始了。n名新生每人有三个属性:姓名、学号、性别。其中,姓名用长度不超过20的仅由大小写字母构成的字符串表示,学号用长度不超过10的仅由数字构成的字符串表示,性别用一个大写字符‘F’或‘M’表示。任意两人的姓名、学号均互不相同。换言之,每个人可被其姓名或学号唯一确定。给出m对两人的信息(姓名或学号),判断他们是否能共舞。两人能共舞的充要条件为两人性别相异。

输入
  第一行一个整数n(2<=n<=1000),表示学生人数。接下来的n行每行依次包含一名新生的姓名、学号、性别,分别用一个空格隔开。
  之后的一行是一个整数m(1<=m<=1000),表示询问的数目。接着的m行每行包含两个信息(姓名或学号),保证两个信息不属于同一人,中间用一个空格隔开。

输出
  对于每个询问输出一行,如果两人可以共舞,输出一个大写字母‘Y’,否则输出一个大写字母‘N’。

样例输入
  4
  John 10 M
  Jack 11 M
  Kate 20 F
  Jim 21 M
  3
  John 11
  20 Jack
  Jim Jack

样例输出
  N
  Y

  N

 

 

import java.util.Scanner;

/**
 * 
 * @author 细肥尸丁
 * @date 2017-3-11
 * 
 */
public class Main {

	private String name;
	private String id;
	private String sex;

	public Main(String name, String id, String sex) {
		super();
		this.name = name;
		this.id = id;
		this.sex = sex;
	}

	public String getName() {
		return name;
	}

	public String getId() {
		return id;
	}

	public String getSex() {
		return sex;
	}

	public static String getSexByName(String name, Main[] students) {
		for (int i = 0; i < students.length; i++) {
			if (students[i].getName().equals(name)) {
				return students[i].getSex();
			}
		}
		return null;

	}

	public static String getSexById(String id, Main[] students) {

		for (int i = 0; i < students.length; i++) {
			if (students[i].getId().equals(id)) {
				return students[i].getSex();
			}
		}
		return null;

	}

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int n = scanner.nextInt();
		Main[] students = new Main[n];

		for (int i = 0; i < n; i++) {
			students[i] = new Main(scanner.next(), scanner.next(), scanner.next());
		}

		int m = scanner.nextInt();
		String[][] info = new String[m][2];
		for (int i = 0; i < info.length; i++) {
			info[i][0] = scanner.next();
			info[i][1] = scanner.next();
			String result1;
			String result2;
			try {
				Integer.parseInt(info[i][0]);
				result1 = Main.getSexById(info[i][0], students);

			} catch (Exception e) {

				result1 = Main.getSexByName(info[i][0], students);

			}

			try {
				Integer.parseInt(info[i][1]);
				result2 = Main.getSexById(info[i][1], students);
			} catch (Exception e) {

				result2 = Main.getSexByName(info[i][1], students);
			}

			if (result1.equals(result2)) {
				System.out.println("N");
			} else {
				System.out.println("Y");
			}
		}

	}

}

 

 

点赞