心得

关于如何找到个别测试点通不过的原因:
复制别人的正确的代码,和自己的代码运行相同的测试用例,比较两者之间的区别

??别人代码里用到的hash是啥??

题目描述

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

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

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

输入例子:
7+IE.
7_This_is_a_test.

输出例子:
_hs_s_a_tst

代码

59行:注意这里对于是否为大写字母的判断(如果是数字或者-.,的话,+32再删除操作会误伤字母!!!)

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{char c;vector<char> c1;while (1){c = getchar();if (c == '\n')break;c1.push_back(c);}vector<char> c2;while (1){c = getchar();if (c == '\n')break;c2.push_back(c);}//删除c2中的c1vector<char>::iterator iter1;vector<char>::iterator iter2;int flag;//标记是否删除过元素,如果没删除过,才能让iter++char Big;for (iter1 = c1.begin(); iter1 != c1.end(); ){flag = 0;if (*iter1 == '+')//如果shift坏了,删除所有c2中的大写字母{for (Big = 'A'; Big <= 'Z'; ){iter2 = find(c2.begin(), c2.end(), Big);if (iter2 != c2.end())//删除大写{c2.erase(iter2);}else{Big++;}}}删除c2中的c1//删除大写iter2 = find(c2.begin(), c2.end(), *iter1);if (iter2 != c2.end()){c2.erase(iter2);flag = 1;}//删除小写//注意这里对于是否为大写字母的判断(如果是数字或者-.,的话,+32操作会误伤字母!!!)if (*iter1 >= 'A'&&*iter1 <= 'Z'){iter2 = find(c2.begin(), c2.end(), *iter1 + 32);if (iter2 != c2.end()){c2.erase(iter2);flag = 1;}}if (flag == 0){iter1++;}}//用iter输出int flag1 = 0;iter2 = c2.begin();for (iter2 = c2.begin(); iter2 != c2.end(); iter2++){cout << *iter2;flag1 = 1;}if (flag1 == 0){cout << endl;}system("pause");
}

牛客网_PAT乙级_1023旧键盘打字(20)【别人代码里用到的hash是啥】相关推荐

  1. 牛客网_PAT乙级_1019旧键盘 (20)

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

  2. 牛客网_PAT乙级_1022挖掘机技术哪家强(20)【class vector sort排序、删除重复元素】

    题目描述 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入描述: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每 ...

  3. 牛客网_PAT乙级1014_科学计数法 (20)

    题目描述 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]"."[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分 ...

  4. 牛客网_PAT乙级_1013组个最小数 (20)

    题目描述 给定数字0-9各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意0不能做首位).例如: 给定两个0,两个1,三个5,一个8,我们得到的最小的数就是1 ...

  5. 牛客网_PAT乙级1008_锤子剪刀布 (20)

    题目 题目描述 大家应该都会玩"锤子剪刀布"的游戏: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入描述: 输入第1行给出正整数N( ...

  6. 牛客网_PAT乙级1004_福尔摩斯的约会 (20)

    #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string. ...

  7. C++学习之路 | PTA乙级—— 1033 旧键盘打字 (20 分)(精简)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

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

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 原题链接 代码 #incl ...

  9. 牛客网_PAT乙级_1019. 数字黑洞 (20)

    总结 注意!! 想要在函数中结束程序,一定不要用system("pause");,因为这样只是让程序暂停,结果就是运行时间超时,无法通过所有的测试用例. 那么,C++ 程序中什么函 ...

最新文章

  1. mysql注入反弹_Discuz!x xss反弹后台无防御sql注入getshell(附带exploit)
  2. docker与kuberentes基本概念与操作学习
  3. mysql sql 去除重复行_mysql – sql自连接表删除重复行
  4. adb android源码分析,Android Adb 源码解析(base on Android 9.0)
  5. C语言-附加-给一个数求最大质数(完整代码)
  6. 十五天数据分析-笔记
  7. 看图说说class文件结构(部分)
  8. Mac系统访问Windows共享文件的详细步骤
  9. Web存储——Web SQL的使用(一)
  10. easypr4android,EasyPR的基本使用
  11. java tbase_让java类继承TBase进行序列化
  12. android版本内存多少,4GB不是尽头 安卓手机内存极限是多少?
  13. Visual Studio Code中设置HTML/HTML5模板
  14. 笔试记录 58同城 算法 20200921
  15. 数字信号处理--傅里叶变换
  16. 程序员都逃不脱35岁失业的魔咒?
  17. 商品展示和陈列VI设计的创意方法
  18. Jarvis OJ 刷题题解 RE
  19. linux 脚本 $? -ne 0是什么意思,【shell】linux之if [ $? -ne 0 ];
  20. 三分钟读完套利定价理论

热门文章

  1. TensorFlow2-网络训练技巧
  2. 三星s8和android auto,手机资讯导报:穿上马甲也认得三星GalaxyS8与LGG6再曝光
  3. 开源oracle client,oracle client安装与配置
  4. Windbg教程-调试非托管程序的基本命令上
  5. 漫游Kafka设计篇之数据持久化
  6. 漫游Kafka实战篇之搭建Kafka运行环境
  7. 换种思路去理解设计模式
  8. Windows 平台编译 WebRTC
  9. 趣谈设计模式 | 适配器模式(Adapter):如何让现存对象适用于新的环境?
  10. 用Python实现二叉树,完全二叉树和满二叉树