题目链接: 旧键盘(牛客)
🍑思路
我们用Set把实际在键盘上输入的储存起来,然后遍历在键盘上应该输入的的字符串,如果在该字符串中某个字符在Set中没有找到,说明该字符所对应的键盘是坏掉的。
🔔注意:
我们输入的都是小写,但题目要求的输出是大写,注意大小写的转换
题目要求的输出是没有重复的,即每个坏掉的那个键只用输出一次就好
代码:
import java.util.*; public class Main { public static void main(String[] args) { Set<Character> set = new TreeSet<>(); Scanner sc = new Scanner(System.in); while (sc.hasNext()){ String str = sc.nextLine(); // 应该输入的文字 str = str.toUpperCase(); // 转换为大写 String tmp = sc.nextLine(); // 实际输入的文字 tmp = tmp.toUpperCase(); for (int i = 0; i < tmp.length(); ++i) { set.add(tmp.charAt(i)); // 把实际输入的文字放到set储存下来 } Set<Character> setBroken = new TreeSet<>(); for (int i = 0; i < str.length(); ++i) { // 当键盘是坏掉的 && 该这个坏掉的键盘还是第一次出现时 if (!set.contains(str.charAt(i)) && !setBroken.contains(str.charAt(i))){ // 把坏掉的键盘储存起来 setBroken.add(str.charAt(i)); System.out.print(str.charAt(i)); } } } } }