Skip to content

7-7 救救倒霉鬼

倒霉鬼抗着一大箱银行票据去邮寄,却不慎掉进了西湖…… 他奋力游上岸并且顺便抢救了一些票据。但还是有一些票据落到了西湖底必须补做…… 于是请你写程序帮帮倒霉鬼,给他列出来需要重新补做的票据有哪些?

输入格式:

输入首先给出全部一箱票据的信息:在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一张票据的编号。题目保证编号不重复。

随后是抢救回来的票据的信息,首先是一个小于 N 的非负整数 M,随后 M 行,每行给出一份抢救回来的票据的编号。题目保证编号存在。

编号为长度不超过 12 的、由英文字母和数字组成的字符串。

输出格式:

按字典序递减输出丢失的票据的编号,每个编号占一行。

输入样例:

tex
5
A20190289
B20018372
A19873001
T27346900
B00247834
3
T27346900
A19873001
B20018372
5
A20190289
B20018372
A19873001
T27346900
B00247834
3
T27346900
A19873001
B20018372

输出样例:

tex
B00247834
A20190289
B00247834
A20190289

Solution:

java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        Set<String> tickets = new TreeSet<>(Comparator.reverseOrder());
        for (int i = 0; i < n; i++) {
            tickets.add(in.readLine());
        }
        int m = Integer.parseInt(in.readLine());
        Set<String> find = new HashSet<>();
        for (int i = 0; i < m; i++) {
            find.add(in.readLine());
        }
        tickets.removeAll(find);
        StringBuilder sb = new StringBuilder();
        for (String ticket : tickets) {
            sb.append(ticket).append("\n");
        }
        System.out.print(sb);
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(in.readLine());
        Set<String> tickets = new TreeSet<>(Comparator.reverseOrder());
        for (int i = 0; i < n; i++) {
            tickets.add(in.readLine());
        }
        int m = Integer.parseInt(in.readLine());
        Set<String> find = new HashSet<>();
        for (int i = 0; i < m; i++) {
            find.add(in.readLine());
        }
        tickets.removeAll(find);
        StringBuilder sb = new StringBuilder();
        for (String ticket : tickets) {
            sb.append(ticket).append("\n");
        }
        System.out.print(sb);
    }
}

Released under the MIT License.