Skip to content

1093 字符串 A+B

给定两个字符串 AB,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除

输入格式:

输入在两行中分别给出 AB,均为长度不超过 106 的、由可见 ASCII 字符 (即码值为 32~126)和空格组成的、由回车标识结束的非空字符串。

输出格式:

在一行中输出题面要求的 AB 的和。

输入样例:

tex
This is a sample test
to show you_How it works
This is a sample test
to show you_How it works

输出样例:

tex
This ampletowyu_Hrk
This ampletowyu_Hrk

Solution:

java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        char[] a = in.readLine().toCharArray();
        char[] b = in.readLine().toCharArray();
        Set<Character> set = new HashSet<>();
        for (char c : a) {
            set.add(c);
        }
        for (char c : b) {
            set.add(c);
        }
        StringBuilder sb = new StringBuilder();
        for (char c : a) {
            if (set.contains(c)) {
                sb.append(c);
                set.remove(c);
            }
        }
        for (char c : b) {
            if (set.contains(c)) {
                sb.append(c);
                set.remove(c);
            }
        }
        System.out.println(sb);
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        char[] a = in.readLine().toCharArray();
        char[] b = in.readLine().toCharArray();
        Set<Character> set = new HashSet<>();
        for (char c : a) {
            set.add(c);
        }
        for (char c : b) {
            set.add(c);
        }
        StringBuilder sb = new StringBuilder();
        for (char c : a) {
            if (set.contains(c)) {
                sb.append(c);
                set.remove(c);
            }
        }
        for (char c : b) {
            if (set.contains(c)) {
                sb.append(c);
                set.remove(c);
            }
        }
        System.out.println(sb);
    }
}

Released under the MIT License.