1 题目
2 代码
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String ch = br.readLine();
char[] res = br.readLine().toCharArray();
StringBuilder str = new StringBuilder(); // 如果每判断一个字符未坏键就输出一次,可能会导致测试点4超时,所以放在StringBuilder中最合适
for (int i = 0; i < res.length; i++) {
if (res[i] >= 65 && res[i] <= 90) { // 考虑大写字母
if (ch.contains(Character.toString(res[i])) || ch.contains("+"))
continue;
else
str.append(res[i]);
} else if (res[i] >= 97 && res[i] <= 122) { // 考虑小写字母
if (ch.contains(Character.toString(res[i]).toUpperCase()))
continue;
else
str.append(res[i]);
} else if (ch.contains(Character.toString(res[i]))) { // 考虑其他字符
continue;
} else {
str.append(res[i]);
}
}
System.out.println(str);
}
}
3 要点
(1)思路:先保存坏键,然后依次比较要输出的字符即可,有点散列的意思。
(2)坑点:如果每判断一个字符未坏键就输出一次,可能会导致测试点4超时,所以放在StringBuilder中最合适。