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


    1029. 旧键盘(20)

    时间限制
    200 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

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

    输入格式:

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

    输出格式:

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

    输入样例:
    7_This_is_a_test
    _hs_s_a_es
    
    输出样例:
    7TI

    思路:输入之后,一一比较,如果不同则是缺失的,为了输出方便,当碰到小写字母时就转为大写存储,否则直接存储,然后在输出时判断前面是否输出相同元素即可

     1 // 1029.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<vector>
     7 #include<string>
     8 #include<cctype>
     9 #include<algorithm>
    10 
    11 using namespace std;
    12 
    13 int main()
    14 {
    15     string input, output;
    16     vector<char> v;
    17 
    18     getline(cin, input);
    19     getline(cin, output);
    20 
    21     for (int i = 0,j=0; i < input.size(); ++i)
    22     {
    23         if (input[i] != output[j])//如果不同即为缺失的
    24         {
    25             if (islower(input[i]))//如果是小写,转为大写
    26                 input[i]=toupper(input[i]);
    27 
    28             v.push_back(input[i]);
    29         }
    30         else
    31             ++j;
    32     }
    33 
    34     vector<char>::iterator i,begin = v.begin(), end = v.end();
    35 
    36     for (i = begin; i != end; ++i)
    37     {
    38         if (find(begin, i, *i) == i)//如果前面未出现则输出
    39             cout << *i;
    40     }
    41 
    42     cout << endl;
    43 
    44     return 0;
    45 }


  • 相关阅读:
    mysql数据库常用命令
    二维码的生成--后台版
    软件构建--目录
    软件构建--项目总结
    软件构建--产品测试
    软件构建--产品研发
    软件构建--系统设计
    百度分享代码
    JS定时跳转URL并输出剩余秒数
    c#生成word文档
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7256883.html
Copyright © 2020-2023  润新知