关闭

旧键盘

148人阅读 评论(0) 收藏 举报
分类:

旧键盘

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

肯定坏掉的那些键。

输入描述:

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

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

输出描述:

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

输入例子:

7_This_is_a_test

_hs_s_a_es

输出例子:

7TI

思路:

           在后面的字符创比较用完之前,每一个字符需要去与前面的一个字符串比较,不一样就从而记录下来!在后面的字符串用完了以后,其余的就不需要去比较了,直接全给记录 下来就可以了。 最后输出就是用一个大的整型数组把输出过的一些字母,全部存起来。每一次你想要输出什么,只要你没有被标记过就可以输出,不然就不要输出。

代码如下:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int main()
{
   char answer[100],answer1[100];
   int s[130];
   int score=0,i;
   gets(answer);
   gets(answer1);
   char a[100];
   int sum=0;
   int sum1=0;
   memset(s,0,sizeof(s));
   for(i=0;i<strlen(answer);i++)
   {
    if(sum<strlen(answer1))
    {
     if(answer1[sum]==answer[i]) //一样的去掉,其余的存起来就可以了。
       sum++;
     else
       a[score++]=answer[i];   
     }
     else
        a[score++]=answer[i];
   }
   a[score]='\0';
   for(i=0;i<score;i++)
   {
     if(a[i]>='a' && a[i]<='z')
       a[i]=a[i]-32;
     if(!s[a[i]])
      printf("%c",a[i]);
      s[a[i]]=1;
   }
   printf("\n");
   return 0;
}

0
0
查看评论

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

1029. 旧键盘(20) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了...
  • wyxdexyq
  • wyxdexyq
  • 2014-10-22 10:31
  • 3091

PAT (Basic Level)1033. 旧键盘打字

https://www.patest.cn/contests/pat-b-practise/1033 题目描述: 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中...
  • XIXI_0921
  • XIXI_0921
  • 2016-03-09 17:37
  • 557

PAT-B 1033. 旧键盘打字

题目内容: 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字...
  • plank_root
  • plank_root
  • 2016-05-06 13:08
  • 688

Java - PAT - 1033. 旧键盘打字(20)

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[...
  • qq_34594236
  • qq_34594236
  • 2016-07-29 19:29
  • 674

PAT Basic 1033. 旧键盘打字(20)

Python版本,AC,四个测试点全部通过。 line1 = list(raw_input()) line2 = list(raw_input()) dict ={} for c in line1: if c>='A' and c<='Z': ...
  • u010388829
  • u010388829
  • 2015-06-17 09:45
  • 535

PAT乙级1033. 旧键盘打字(20)

这题目我已开始用10+26+5键盘的方式写,但是第2个和第4个测试点一直过不掉 很烦,考虑到了第一行有可能为空的情况,但依然不行 只好求助隔壁论坛 唐衣可俊兄的文章,发现他的解法优美极了 作者:tangyikejun 出处:http://www.cnblogs.com/tang...
  • TimVan1596
  • TimVan1596
  • 2017-03-15 19:19
  • 341

【PAT】1033. 旧键盘打字(20)

1033. 旧键盘打字(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入...
  • artemisrj
  • artemisrj
  • 2015-06-27 13:13
  • 968

1033. 旧键盘打字(20)--Python

之前的时候最后一个测试点一直没有通过,后来在网上搜寻了一下答案,发现自己写的逻辑实在是太混乱了,所以看了一下别人的思路,主要是: (1)首先判断坏键盘中是否有“+”,若是有的话,使用flag标记一下; (2)然后可以循环的判断应该输出的字符串,边遍历边输出,将正确的直接进行输出; (3)在判断...
  • baidu_38271024
  • baidu_38271024
  • 2017-10-28 14:12
  • 130

PAT Basic 1029. 旧键盘(20)(C语言实现)

题目 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。 输入格式: 输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及...
  • Oliver__Lew
  • Oliver__Lew
  • 2017-05-18 23:45
  • 363

PAT1029旧键盘

1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了...
  • AliceGoToAnother
  • AliceGoToAnother
  • 2016-02-21 15:04
  • 551