Loading... 本题要求你计算 $A−B$。不过麻烦的是,$A$ 和 $B$ 都是字符串 —— 即从字符串 $A$ 中把字符串 $B$ 所包含的字符全删掉,剩下的字符组成的就是字符串 $A−B$。 ## 输入格式: 输入在 2 行中先后给出字符串 $A$ 和 $B$。两字符串的长度都不超过 $10^4$,并且保证每个字符串都是由可见的 ASCII 码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出 $A−B$ 的结果字符串。 输入样例: ``` I love GPLT! It's a fun game! aeiou ``` 输出样例: ``` I lv GPLT! It's fn gm! ``` --- ``` import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char[] A = br.readLine().toCharArray(); char[] B = br.readLine().toCharArray(); boolean[] booleans = new boolean[128]; for (char i : B){ booleans[i] = true; } for (char j : A){ if(!booleans[j]){ System.out.print(j); } } } } ``` <div class="tip inlineBlock error"> 由于时间限制只有150ms,所以即使使用了 BufferedReader 类也还是运行超时 </div> --- 通过字符串的 replaceAll 方法进行正则表达式替换: ``` import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String A = br.readLine(), B = br.readLine(); // A.replaceAll(regex, replacement) 将字符串A按照regex正则表达替换成replacement替换字符。 System.out.print(A.replaceAll("[" + B + "]", "")); // 正则:[B]代表匹配B中的任意一个字符 } } ``` © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate