L1-011 A-B

C语言程序练习-L1-011 A-B (20分) L1-011 A-B (20分) 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10^4,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出A−B的结果字符串。 输入样例: I love GPLT! It’s a fun game! aeiou 输出样例: I lv GPLT! It’ 阅读详情

L1-011 A-B

题目

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

输入格式:

输入在2行中先后给出字符串A和B。两字符串的长度都不超过 10 4 10^4 104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。

输出格式:

在一行中打印出A−B的结果字符串。

输入样例:

I love GPLT!  It's a fun game!
aeiou

输出样例:

I lv GPLT!  It's  fn gm!

C++ 代码

#include <iostream>
#include <string>
// 用于快速判断字符是否存在
#include <unordered_set>
using namespace std;

int main() {
    string a, b;
    // 读取两行完整字符串(包含空格)
    getline(cin, a);
    getline(cin, b);

    // 把 B 的字符存入集合,方便 O(1) 查找
    unordered_set<char> to_delete(b.begin(), b.end());

    // 遍历 A,只保留不在 B 中的字符
    for (char c : a) {
        if (to_delete.find(c) == to_delete.end()) {
            cout << c;
        }
    }
    
    return 0;
}

第一部分:getline 函数详解

1. 作用

读取一整行字符串,包括空格、空白字符,直到遇到换行符停止。

2. 头文件

#include <string>

3. 语法格式

getline(输入流, 字符串变量);

4. 代码中的用法

getline(cin, a);  // 读取第一行字符串存入 a
getline(cin, b);  // 读取第二行字符串存入 b

5. 为什么必须用 getline

  • cin >> 字符串 遇到空格就停止读取
  • 题目字符串包含空格,必须用 getline 读整行

6. 特点

  • 读取整行,保留所有空格
  • 自动忽略行尾换行符
  • 适合读取带空白的句子

第二部分:unordered_set 集合 超详细全面讲解

1. 集合是什么

unordered_set 是 C++ STL 中的无序集合容器。

  • 存储不重复元素
  • 查找、插入、删除速度极快 O(1)
  • 主要用途:快速判断元素是否存在

2. 必须包含的头文件

#include <unordered_set>

3. 代码中这一行的完整解析

unordered_set<char> to_delete(b.begin(), b.end());
  • unordered_set<char>:定义存储字符类型的集合
  • to_delete:要删除的字符集合(黑名单)
  • b.begin():字符串 b 的起始位置
  • b.end():字符串 b 的结束位置
  • 整体功能:把字符串 b 的所有字符批量插入集合
    在这里插入图片描述

4. 常用核心用法

① 创建集合

unordered_set<char> s;

② 插入元素

s.insert('a');

③ 查找元素(本题最重要)

if (s.find(c) == s.end()) {
    // 不在集合中,保留输出
}

④ 删除元素

s.erase('a');

⑤ 获取元素个数

s.size();

⑥ 判断是否为空

s.empty();

⑦ 清空集合

s.clear();

⑧ 遍历集合

这里分 两种遍历方式:

方式 1:范围 for 循环(最简单)
for (char c : s) {
    cout << c;
}
方式 2:迭代器遍历
for (auto it = s.begin(); it != s.end(); it++) {
    cout << *it << endl;
}
逐行逐词拆解
  1. auto it

    • auto:自动推导类型
    • it:迭代器变量,相当于指向集合元素的指针
  2. s.begin()

    • 获取集合第一个元素的迭代器
  3. it != s.end()

    • 循环条件:迭代器没有走到集合末尾就继续
  4. it++

    • 迭代器向后移动,指向下一个元素
  5. *it

    • 取值操作
    • 取出迭代器当前指向的元素本身
整段代码功能

从头到尾遍历集合中所有元素,并依次输出。

【PTA】L1-011 A-B (C++)_l1-011 a-bc++ 不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~给大家准备的学习资料包括但不限于:Python 环境、pycharm编辑器/永久激活/翻译插件python 零基础视频教程Python 界面开发实战教程Python 爬虫实战教程Python 数据分析实战教程python 游戏开发实战教程Python 电子书100本。 阅读详情

相关推荐

手把手教你用Python 3.11和Node.js 18在Windows 11上搭建Dify开发环境

本文提供了一份详尽的Windows 11本地Dify开发环境搭建指南。文章手把手教你完成从Python 3.11、Node.js 18的安装配置,到PostgreSQL、Redis数据库服务的部署,再到前后端服务的启动与联调的全过程,并包含常见问题排查与效能优化建议,旨在帮助开发者构建一个稳定、可调试的Dify本地开发环境。

fire9的博客 645

PTA L1-011 A-B

为什么这个20分这么简单...

2401_87917890的博客 135

Python实战:用jieba和WordCloud打造电商评论情感分析工具(附完整代码)

本文详细介绍了如何使用Python的jieba分词和WordCloud库构建电商评论情感分析工具,涵盖数据预处理、情感分析、可视化展示等关键步骤,并提供完整代码实现。通过该工具,开发者可以高效分析电商评论数据,挖掘消费者情感倾向,为产品改进和决策提供数据支持。

weixin_30316097的博客 415

L1-011 A-B (20 分) (正则替换 - 最简方法)

L1-011 A-B (20 分) 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10 ​4 ​​ ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出A−B的结果字符串。 输入样例:...

长生的梦呓 1761

短距激光雷达专业讲解:定义、架构、技术路线与选型逻辑

短距激光雷达,通常指有效探测距离不大于 50 米的激光雷达产品。它主要服务于服务机器人、扫地机器人、AGV/AMR、无人机、智能手机、AR/VR、工业安全等中近距感知场景。它与车载中长距激光雷达的最大区别,不是“探测距离短一点”,而是整套工程目标不同。短距激光雷达的核心诉求是:小体积、低成本、高帧率、强抗光、嵌入式集成。单价从百元级扫地机模组,到数千元级工业 3D 雷达不等。一句话概括:中长距车载激光雷达追求远距离、高可靠、车规寿命;

致力于lidar应用开发 151

量子化学仿真软件:VASP_(9).磁性材料计算

在量子化学仿真软件 VASP 中,磁性材料的计算是一个复杂但重要的过程。通过正确设置磁性状态、分析磁性性质、优化计算参数以及研究磁性相变和磁动力学,可以更准确地描述和预测磁性材料的性能。希望本节的内容能够为研究磁性材料的科研人员提供有用的参考和指导。

kkchenjj的博客 1375

团体程序设计天梯赛-练习集——L1-011 A-B

相对来说,这道题就比较简单了,但是这道题整整有20分呢,巨肥。

shidisy的博客 950

Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用

🏆 前端领域优质创作者 1万+

GPLT 天梯赛 L1-011 A-B 题解

本人作为三本计科鼠鼠,了解弱校竞赛难处,近来准备天梯赛中,故边做题边写题解,希望可以帮助。后来的学弟学妹更进一步,取得优异的成绩,作者水平一般,菜了勿喷。

2301_80005024的博客 205

TC397 EB MCAL开发从0开始系列 之 [13.1] Dma配置实战 -实现M2M数据传输(读存储写存储)

TC3XX TC397 MCAL DMA 从0搭建测试用例-实现M2M 存储到存储数据传输

yy九歌的博客 1914

基于STM32L4XX、HAL库的AD7124模数转换器ADC驱动程序设计

/ 检查ID是否正确 (AD7124-4/AD7124-8有不同的ID)// 转换为电压值 (假设使用内部2.5V基准)// 构造读命令: 1(R/W) + 1(0) + 6(寄存器地址)// 构造写命令: 0(R/W) + 1(0) + 6(寄存器地址).config = 0, // 使用配置0。内置可编程增益放大器(PGA):1-128倍。// 读取ADC数据。// 读取当前ADC控制寄存器。// 检查数据是否就绪。// 写回ADC控制寄存器。// 初始化AD7124。

zhusl6688的博客 520

PTA_L1-011 A-B(java)

直接再声明一个变量index,从0开始,如果遇到了这个字符的flag是false,我们直接让a[index] = a[i]。答案是不会的,因为index只会<=i,为什么呢,因为你只有在字符的flag为false的时候index才++,但是A里面肯定会含有flag为true的字符,所以index只会<=i。然后就找到了这样一份代码,我们声明一个boolean类型的数组flag,用来标记128ascii字符是否是B里面的,如果是的话,我们就标记为true,不是就是false。很遗憾,还是没拿满。

hsyhcr的博客 305

LAMMPS后处理—如何构建二维云图-接触角呢?

计算接触角

Rockyoung 6523

PTA L1-011 A-B 仓颉(cangjie)

L1-011 A-B分数 20作者 陈越单位 浙江大学本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

LINNIN233的博客 533

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

PTA 天梯赛 L1-011 A-B (20 分)

L1-011 A-B (20 分) 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过104​​ ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出A−B的结果字符串。 输入样例: I ...

忘梦心的博客 993

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PTA团队天梯赛║L1-011 A-B

PTA团队天梯赛║L1-011 A-B 一、题目要求 本题要求你计算 A−B 。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串 A−B 。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出A−B的结果字符串。 输入样例: I love GPLT! It's a fun game! aeiou 输出样例: I lv

m0_46492118的博客 595

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

L1-011 A-B - 20 分

本文介绍了天梯赛L1-011 A-B字符串处理题的解题方法。题目要求从字符串A中删除所有出现在字符串B中的字符,保留原始顺序。文章分析了两种实现方式:C语言使用字符数组和getchar()逐字符读取,手动添加结束符;C++则利用string类和getline()简化操作。核心思路是通过标记数组(O(1)时间复杂度)快速筛选字符,并强调正确处理带空格的整行输入。对比了两种语言的实现差异,指出C++语法更简洁高效。最后总结了"标记-过滤"的通用解题模板和ASCII字符处理的注意事项,为算法竞

2603_95058369的博客 670

PTA 程序设计天梯赛 Java L1-011 A-B (20分)

L1-011 A-B 本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。 输入格式: 输入在2行中先后给出字符串A和B。两字符串的长度都不超过10​4,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。 输出格式: 在一行中打印出A−B的结果字符串。 输入样例: I love GPLT! It's a fun game! aeiou 输出样例: I lv GPLT! It's fn gm

qq_37079157的博客 1173

「Mac玩转仓颉内测版20」PTA刷题篇11 - L1-011 A-B

本篇将继续讲解PTA平台上的题目 L1-011 A-B,通过对两个字符串进行处理,将字符串 A 中所有在字符串 B 中出现的字符删除,进一步提升Cangjie编程语言的字符串操作与逻辑处理能力。

天月智联 1020

PTA团体程序设计天梯赛——L1-011 A-B(双指针)

【代码】PTA团体程序设计天梯赛——L1-011 A-B(双指针)

ml29895063的博客 265
上一篇: 最小生成树两种算法对比:Kruskal 与 Prim
下一篇: L1-012 计算指数、L1-013 计算阶乘和、 L1-014 简单题、 L1-015 跟奥巴马一起画方块、 L1-016 查验身份证
ab123768
博客等级 码龄3年 43粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ab123768

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值