题目描述

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

肯定坏掉的那些键。

输入描述:

输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、

以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。

输出描述:

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

输入例子:

7_This_is_a_test
_hs_s_a_es

输出例子:

7TI

思路

键盘上一个键坏了那么它的大小写都读不出来,所以只需要全转换为大写,再用contains方法找出字符就行了。

C的

#include <stdio.h>
#include <string.h>
int main() {
char ru[81];
char chu[81];
int rint[128] = {0};
gets(ru);//gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止
gets(chu);
for (int i = 0; i < strlen(ru); i++) {
int has = 0;
for (int j = 0; j < strlen(chu); j++) {//strlen()只是统计字符串的长度,统计到'\0'结束,但不包括'\0'
if (chu[j] == ru[i]) {
has = 1;
break;
}
}
// 判断是否包含某字符
if (!has) {
if (ru[i] >= 'a' && ru[i] <= 'z') {
ru[i] = ru[i] + 'A' - 'a';
}
// 如果没打印过,则打印,并标记为已打印
if (!rint[ru[i]]) {
putchar(ru[i]);//putchar()输出指定字符,不会在输出后自动换行
rint[ru[i]] = 1;
}
}
}
return 0;
}

python

while True:
try:
originalString = input().upper() #把输入变为大写
actualString = input().upper()
result = []
for i in originalString:
if actualString.find(i) == -1: #如果在第二个字符串没查找到
if i not in result: #如果结果集里已经有了则不添加,以免破坏顺序
result.append(i)
print("".join(result))
except Exception:
break

Java

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
String[] a=in.nextLine().toUpperCase().split("");//先将输入的字符串转换为大写,并用字符数组存储到a字符串数组中。
String b=in.nextLine().toUpperCase();//读入残缺键盘的输入的字符串并存储到b
String c="";//存储最后输出的字符
//然后用contains比较两行字符
for(int i=0;i<a.length;i++){//遍历a字符数组,a.length是求数组的长度.length是数组的成员变量!
if(!b.contains(a[i])){//判断按键损坏,即如果判断b字符串中不包含a[i]的字符,则进入判断
if(!c.contains(a[i])) {//判断重字符,即坏键只输出一次,如果c中不包含a[i]的字符,则进入判断
c =c+ a[i];//将不相重的字符存入c中
}
}
}
System.out.println(c);//输出每个坏键
}
}

java中nextLine()和next()的区别

  • 用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine()。
  • next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。
  • 完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

Java中的toUpperCase()

  • toUpperCase()方法将字符串小写字符转换为大写。

Java中的split()

  • split对字符串以给定的字符进行分隔,得到字符串数组。
  • 逐个分隔字符串。split("");里面是空,不是空格。
String str[] = str.split("");
  • 同时使用多个分隔符进行分隔。split(“[分隔符分隔符]”)。这里是同时用2和3进行分隔。
String str[] = str.split("[23]");
  • 用多个空格分隔符进行分隔。split(" {1,}").。注意是空格加{1,}。就是说以1个空格或者1个以上空格分隔。如果是用两个或者以上空格split(“ {2,}”)。
String str[] = "1 2   3   45  54";
String str[] = str.split(" {1,}");

java中contains方法

  • java中contains方法是判断是否存在包含关系,比如说a =[1,2,3,4], b=1那么a就包含b。
  • contains返回的是布尔类型true 和false,包含的话就返回true,不包含的话就返回false。
public class pratise {

    public static void main(String[] args) {
String a = "l love feng ye";
String b = "love";
boolean c = a.contains(b);
System.out.println(a.contains(b));
//assertEquals(a.contains(b), "true");
assert(c)=true;//加断言
}
}//最后结果是true

1029 旧键盘 (20 分)C、Java、python的更多相关文章

  1. PAT Basic 1029 旧键盘 (20 分)

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

  2. PAT (Basic Level) Practice (中文)1029 旧键盘 (20 分)

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

  3. PTA | 1029 旧键盘 (20分)

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

  4. PAT 1029 旧键盘(20)(代码)

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

  5. PAT乙级 1029. 旧键盘(20)

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  6. PAT-乙级-1029. 旧键盘(20)

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  7. PAT 乙级 1029 旧键盘(20) C++版

    1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...

  8. PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)

    PAT (Basic Level) Practise (中文)-1029. 旧键盘(20) http://www.patest.cn/contests/pat-b-practise/1029 旧键盘上 ...

  9. PAT 1029. 旧键盘(20)

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

随机推荐

  1. Laravel5.1 实现第三方登录认证教程之 - 微信登录

    https://laravel-china.org/topics/2451/laravel51-implementation-of-the-third-party-login-authenticati ...

  2. 当flex遇到white-space: nowrap; 排版就飞了的神奇问题 吐血

    在做一个移动端排班的时候需要某一行的字超出的部分用省略号代替  然后写着发现后面排版乱了 HTML结构如下  我想让第二个span的内容加省略号 css正确的代码如下 .list { width: 1 ...

  3. 4、安装supervisor

    1.安装 sudo apt-get install supervisor 2.如果报phthond2.7错误,则执行 easy_install supervisor 3.配置文件位置和配置文件例子 配 ...

  4. oracle中=>是什么意思呢?

    => 是 Oracle 中调用 存储过程的时候, 指定 参数名进行调用.一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用.下面是具体的例子. 参数的默认值SQL> CREAT ...

  5. keras 保存模型和加载模型

    import numpy as npnp.random.seed(1337) # for reproducibility from keras.models import Sequentialfrom ...

  6. 模板——Treap实现名次树

    Treap 是一种通过赋予结点随机权值的一种满足堆性质的二叉搜索树,它很好的解决了二叉搜索树顺序插入组成链式的局限性. 名次树是指在treap的每个结点中添加附加域size,表示以它为根的子树的总结点 ...

  7. H3C DHCP中继显示及维护

  8. Aizu 0531 "Paint Color" (坐标离散化+DFS or BFS)

    传送门 题目描述: 为了宣传信息竞赛,要在长方形的三合板上喷油漆来制作招牌. 三合板上不需要涂色的部分预先贴好了护板. 被护板隔开的区域要涂上不同的颜色,比如上图就应该涂上5种颜色. 请编写一个程序计 ...

  9. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(15)之前台网站页面

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 本项目主要是一个素材的分 ...

  10. Linux 内核SBus连接

    当大部分计算机配备有 PCI 或 ISA 接口总线, 大部分老式的基于 SPARC 的工作站使用 SBus 来连接它们的外设. SBus 使一个非常先进的设计, 尽管它已出现很长时间. 它意图是处理器 ...