PAT甲级真题1050 字符串减法

简介: PAT甲级真题1050 字符串减法

PAT甲级真题1050

链接:PAT甲级真题1050

给定两个字符串 S1 和 S2,S=S1−S2 定义为将 S1 中包含的所有在 S2 中出现过的字符删除后得到的字符串。

你的任务就是计算 S1−S2。

输入格式

共两行,第一行包含字符串 S1,第二行包含字符串 S2。

输出格式

输出共一行,表示 S1−S2 的结果。

数据范围

两个给定字符串的长度都不超过 10^4。

输入样例:
They are students.
aeiou
输出样例:
Thy r stdnts.

解题思路

  • 只需要判断S1中的字符是否在S2中即可
  • 一开始我是用函数来判断是否存在,但是超时,所以选用unordered_map来判断
  • 代码一看就懂的

AC代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
string str,noStr,ansStr;
int main()
{
    getline(cin,str);
    getline(cin,noStr);
    unordered_map<char,int> noStrstr;
    for (int i = 0; i < noStr.size(); i ++ )
    {
        noStrstr[noStr[i]]++;
    }
    for (int i = 0; i < str.size(); i ++ )
    {
        if(!noStrstr[str[i]])ansStr=ansStr+str[i];
    }
    cout<<ansStr<<endl;
    return 0;
}


相关文章
|
8月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
8月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
8月前
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 十六进制转八进制
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-试题 基础练习 十六进制转八进制
50 0
|
8月前
|
算法
第十四届蓝桥杯集训——for——判断质数/素数
第十四届蓝桥杯集训——for——判断质数/素数
69 0
|
8月前
|
算法
PAT甲级真题1010 进制
PAT甲级真题1010 进制
59 0
|
C语言 C++
【蓝桥杯刷题】坑爹的负进制转换
【蓝桥杯刷题】坑爹的负进制转换
83 0
|
Java 测试技术 C语言
【蓝桥杯基础题】2020年省赛填空题—回文日期
【蓝桥杯基础题】2020年省赛填空题—回文日期
【蓝桥杯基础题】2020年省赛填空题—回文日期
|
测试技术
【寒假每日一题】AcWing 4653. 数位排序(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 关于pair
111 0
|
C语言
下面【整型提升】的例题,你会几道?学完这一课,你将真正拿捏整型提升问题
下面【整型提升】的例题,你会几道?学完这一课,你将真正拿捏整型提升问题
153 0
下面【整型提升】的例题,你会几道?学完这一课,你将真正拿捏整型提升问题
|
人工智能
凑算式---蓝桥杯
凑算式---蓝桥杯
凑算式---蓝桥杯

热门文章

最新文章