zoukankan      html  css  js  c++  java
  • PAT——1033. 旧键盘打字

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

    输入格式:

    输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。

    注意:如果上档键坏掉了,那么大写的英文字母无法被打出。

    输出格式:

    在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。

    输入样例:

    7+IE.
    7_This_is_a_test.
    

    输出样例:

    _hs_s_a_tst
    
     1 package com.hone.basical;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1030
     7  * @author Xia
     8  * 思路:用一个list保存所有的换掉的键盘,然后遍历应该输出的str,判断里面的字节是否包含
     9  * 在list中,如果不包含,则输出,包含则直接。但是这种方法会运行超时。。。。。。
    10  * 下面利用一种标记方法
    11  */
    12 public class basicalLevel1033oldKeyBoardWrite{
    13     public static void main(String[] args) {
    14         Scanner s = new Scanner(System.in);
    15         String miss = s.nextLine();
    16         String acture = s.nextLine();
    17         
    18         //建立一个boolean类型的数组检测键盘是否已经损坏
    19         boolean[] broken = new boolean[500];
    20         
    21         //默认所有的都没有坏
    22         for (int i = 0; i < 500; i++) {
    23             broken[i] = false;
    24         }
    25         
    26         //如果存在于miss字符串中的一定坏了,并且大写字母对于的小写字母也不能输出(默认是坏的)
    27         //大写字母与小写字母的转化(ascii   a = 65  A = 97)
    28         for (int i = 0; i < miss.length(); i++) {
    29             broken[miss.charAt(i)] = true;
    30             if (miss.charAt(i)>='A'&&miss.charAt(i)<='Z') {
    31                 broken[miss.charAt(i)+32] = true; 
    32             }
    33         }
    34         
    35         for (int i = 0; i < acture.length(); i++) {
    36             if (broken['+']) {            //如果+是坏的(只有标记为false以及非大写字母的才能输出)
    37                 if (!broken[acture.charAt(i)]&&(acture.charAt(i)<'A'||acture.charAt(i)>'Z')) {
    38                     System.out.print(acture.charAt(i));
    39                 }
    40             }else{            //如果+不是坏的,则标记为false的才能输出
    41                 if (!broken[acture.charAt(i)]) {
    42                     System.out.print(acture.charAt(i));
    43                 }
    44             }
    45         }
    46         System.out.println();
    47     }
    48 }
  • 相关阅读:
    十二、 Spring Boot 静态资源处理
    九、 Spring Boot 拦截器
    docker之搭建私有仓库
    docker之Dokcerfile 常用指令
    docker之网络管理
    docker之故障问题解决方案
    docker之搭建LNMP
    docker之容器数据持久化
    都说岁月不饶人,我们又何曾饶过岁月
    docker之容器管理
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7991060.html
Copyright © 2011-2022 走看看