旧键盘(简单难度)

简介: 旧键盘(简单难度)

题目概述(简单难度)

题目链接

旧键盘

思路与代码

思路展现

代码示例

import java.util.*;
public class Main {
    public static void func(String strExc,String strAct){
        //set1用于存放实际输入的值,也就是我们的strAct 
        HashSet<Character> set1 = new HashSet<>();
        //因为题目中说了要忽略小写,都为大写,所以用toUpperCase方法
        for(char c:strAct.toUpperCase().toCharArray()){
            set1.add(c);
        }
        //set2是为了避免重复设置的集合,主要存储最终要输出的元素.
        //set2主要存储最终要输出的值
        HashSet<Character> set2 = new HashSet<>();
        for(char c:strExc.toUpperCase().toCharArray()){
        //注意这里要进行两次判断,是因为假设只有判断set1当中的元素是否存在于c中的字符,此时结果会重复
            if(!set1.contains(c)&&!set2.contains(c)) {
                set2.add(c);
                System.out.print(c);
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //我们本来想要得到的输入的值
        String strExc = sc.nextLine();
        //最终实际输入的值
        String strAct = sc.nextLine();
        func(strExc,strAct);
  }
}

假设if(!set1.contains©&&!set2.contains©)这个判断语句中的第二个判断条件没有的话,会出现下面的错误:

我们会发现输出结果出现重复,主要原因是每次判断的时候没有去重,所以此时需要定义额外的set2集合去重.

相关文章
|
9月前
1033 旧键盘打字 (20 分)
1033 旧键盘打字 (20 分)
|
9月前
1029 旧键盘 (20 分)
1029 旧键盘 (20 分)
w10升级至W11系统,黑屏但鼠标与桌面快捷方式能用,如何解决
w10升级至W11系统,黑屏但鼠标与桌面快捷方式能用,如何解决
|
JSON NoSQL Redis
逆转时间,起死回生——程序报错崩溃后,如何倒回到崩溃的位置?
逆转时间,起死回生——程序报错崩溃后,如何倒回到崩溃的位置?
116 0
|
数据安全/隐私保护 C语言 计算机视觉
C语言第四章 分支结构程序设计习题1【初始版手机编辑,电脑修改数据丢失。看水印】
C语言第四章 分支结构程序设计习题1【初始版手机编辑,电脑修改数据丢失。看水印】
110 0
C语言第四章 分支结构程序设计习题1【初始版手机编辑,电脑修改数据丢失。看水印】
PAT乙级(散列) PAT.B1033——旧键盘打字
PAT乙级(散列) PAT.B1033——旧键盘打字
95 0
1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
133 0
Geany整体增加减少缩进快捷键
Geany整体增加减少缩进快捷键
196 0
Geany整体增加减少缩进快捷键
鼠标侧键屏蔽,再也不用担心按到侧键了。
鼠标侧键屏蔽,再也不用担心按到侧键了。
605 0
鼠标侧键屏蔽,再也不用担心按到侧键了。