PAT乙级1029,使用双重循环

从今天开始全国各地研究生成绩陆陆续续也都出来了,出成绩的时刻总是有人欢喜有人忧,不管怎样,都应该紧锣密鼓的准备起来了,考的好的好好准备复试,考的一般的就得做好两手准备了,是调剂还是找工作。祝愿各位准研究生们都能顺利被自己想去的院校录取。笔者也参加了2020年研究生考试,也祝愿自己能顺利通过复试,拿到录取通知书。

1029 旧键盘 (20分)

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

输入格式:

输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线_(代表空格)组成。题目保证 2 个字符串均非空。

输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。

输入样例:

7_This_is_a_test
_hs_s_a_es

输出样例:

7TI

题目解析:
①双重循环找到所有的坏键放到数组badkey[]中

②使用字符的ToUppercase方法把所有的小写字符转换为大写

③再利用双重循环找到badkey中重复的字符,从后往前找,把找到的相同字符置为*号

④输出不是*号的所有字符

AC代码:

 import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner s=new Scanner(System.in);
        char[] c1=s.next().toCharArray();//第一行
        char[] c2=s.next().toCharArray();//第二行
        //存放坏键的集合,全部找到之后转换为字符数组
        ArrayList<Character> list=new ArrayList<>();
        
        //找所有的坏键
        for(int i=0;i<c1.length;i++){
    
    
            boolean flag=true;
            for(int j=0;j<c2.length;j++){
    
    
                if(c1[i]==c2[j]){
    
    //第一行和第二行有字符相同,说明不是坏键
                    flag=false;//置为false
                    break;
                }
            }
            if(flag)//如果是true说明c1[i]是坏键
                list.add(c1[i]);
        }
        //把所有坏键放到数组中,同时转换为大写字母
        char[] badkey=new char[list.size()];
        for(int i=0;i<badkey.length;i++){
    
    
            badkey[i]=Character.toUpperCase(list.get(i));
        }
        //找重复的相同的坏键置为*号
        for(int i=badkey.length-1;i>0;i--){
    
    
            for(int j=i-1;j>=0;j--){
    
    
                if(badkey[i]==badkey[j])
                    badkey[i]='*';
            }
        }
        //按题目要求输出坏键
        for(int i=0;i<badkey.length;i++){
    
    
            if(badkey[i]!='*'){
    
    
                System.out.print(badkey[i]);
            }
        }
    }
}

更多题目解析关注公众号算法宝贝

猜你喜欢

转载自blog.csdn.net/CSDN_Lrcx/article/details/116168357
今日推荐