PAT——1033. 旧键盘打字
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
7+IE.
7_This_is_a_test.
输出样例:
_hs_s_a_tst
package com.hone.basical; import java.util.Scanner; /**
* 原题目:https://www.patest.cn/contests/pat-b-practise/1030
* @author Xia
* 思路:用一个list保存所有的换掉的键盘,然后遍历应该输出的str,判断里面的字节是否包含
* 在list中,如果不包含,则输出,包含则直接。但是这种方法会运行超时。。。。。。
* 下面利用一种标记方法
*/
public class basicalLevel1033oldKeyBoardWrite{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String miss = s.nextLine();
String acture = s.nextLine(); //建立一个boolean类型的数组检测键盘是否已经损坏
boolean[] broken = new boolean[500]; //默认所有的都没有坏
for (int i = 0; i < 500; i++) {
broken[i] = false;
} //如果存在于miss字符串中的一定坏了,并且大写字母对于的小写字母也不能输出(默认是坏的)
//大写字母与小写字母的转化(ascii a = 65 A = 97)
for (int i = 0; i < miss.length(); i++) {
broken[miss.charAt(i)] = true;
if (miss.charAt(i)>='A'&&miss.charAt(i)<='Z') {
broken[miss.charAt(i)+32] = true;
}
} for (int i = 0; i < acture.length(); i++) {
if (broken['+']) { //如果+是坏的(只有标记为false以及非大写字母的才能输出)
if (!broken[acture.charAt(i)]&&(acture.charAt(i)<'A'||acture.charAt(i)>'Z')) {
System.out.print(acture.charAt(i));
}
}else{ //如果+不是坏的,则标记为false的才能输出
if (!broken[acture.charAt(i)]) {
System.out.print(acture.charAt(i));
}
}
}
System.out.println();
}
}
PAT——1033. 旧键盘打字的更多相关文章
- PAT 1033 旧键盘打字(20)(20 分)
1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...
- PAT 1033. 旧键盘打字(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以及应该输入的文 ...
- PAT 1033 旧键盘打字
https://pintia.cn/problem-sets/994805260223102976/problems/994805288530460672 旧键盘上坏了几个键,于是在敲一段文字的时候, ...
- PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20)
PAT (Basic Level) Practise (中文)-1033. 旧键盘打字(20) http://www.patest.cn/contests/pat-b-practise/1033 旧 ...
- PAT乙级 1033. 旧键盘打字(20)
1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...
- PAT(B) 1033 旧键盘打字(C) 字符
题目链接:1033 旧键盘打字 (20 point(s)) 题目描述 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是 ...
- PAT-乙级-1033. 旧键盘打字(20)
1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文 ...
- P 1033 旧键盘打字
转跳点:
- PAT (Basic Level) Practise:1033. 旧键盘打字
[题目链接] 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以 ...
随机推荐
- 解决:IDEA springmvc maven 项目搭建完后没有生成 webcontent 目录
前言:发现项目创建好,配置好,写好测试代码,一看没有 webcontent 目录. 问题: 解决方案: ctrl + alt + Shift + S
- ActiveMQ的用途
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线. ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现. 消息队列的主要作用是为了 ...
- win10命令控制符
IP:ipconfigIP地址侦测器:Nslookup显卡:dxdiag控制面板:control电话拨号:dialer木马捆绑工具,系统自带:iexpress本地用户和组:lusrmgr.msc鼠标属 ...
- file cycle
# Author:Alex# Date:2017.06.07# Version:3.6.0with open('james.txt') as jaf: data = jaf.readline() ja ...
- Azure 中部署Gitlab的方法
一.Azure 中创建Gitlab虚拟机(1).登陆Azure:打开Azure 官网,点击右侧上方的登陆Azure门户,输入Azure帐号与密码,点击 登陆 . (2).创建Gitlab虚拟机:登陆A ...
- 将NSString变成贝塞尔曲线
将NSString变成贝塞尔曲线 https://github.com/aderussell/string-to-CGPathRef NSString中的字符串是可以通过CoreText框架将其转换成 ...
- Python学习---Django重点之静态资源配置
[官网静态文件介绍] https://docs.djangoproject.com/en/1.10/howto/static-files/ # settings.py 配置静态资源文件 # STATI ...
- 乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number
乘风破浪:LeetCode真题_017_Letter Combinations of a Phone Number 一.前言 如何让两个或者多个集合中的随机挑选的元素结合到一起,并且得到所有的可能呢? ...
- August 23rd 2017 Week 34th Wednesday
Do not pray for easy lives. Pray to be stronger men. 不要祈祷舒适的生活,而是祈祷自己能变得更强大. It seems this quotation ...
- August 12th 2017 Week 32nd Saturday
That which does not kill us makes us stronger. 但凡不能杀死你的,最终都会使你更强大. Seemingly I have heard this from ...