PTA天梯赛练习题 L1-011 A-B


在这里插入图片描述
PTA | 程序设计类实验辅助教学平台

思路简析

个人感觉不错的一道题,看到题目说将字符串A中把字符串B所包含的字符全删掉,想到挨个取B中的字符B[i],然后利用双指针法删掉A中的B[i]。具体细节和注意事项如下:

  1. 输入的是含有空格的字符串,用cin不能完整输入,这里用getline()函数,对getline()不熟悉的小伙伴可以看本文最下面的链接。
  2. 利用双指针删除,这里没有算法基础的小伙伴可能会有一点懵,可以看一下卡尔哥的讲解:代码随想录
  3. 这里用的是万能头文件#include<bits/stdc++.h>,挨个调用对应头文件也是可以的。

解法代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    string A,B;
    getline(cin, A);  //防止截断,用getline函数来输入
    getline(cin, B);
    for (int position = 0; position < B.size(); position++) {   //position用来确定B中字符
        for (int i = 0, j = 0; i < A.size(); j++) {             //使用双指针法来进行删除
            if (A[j] != B[position]) {
                A[i] = A[j];
                i++;
            }
        }        
    }
    cout << A << endl;
    return 0;
}

相关知识

getline()的用法: C++中getline()的用法_c++ getline头文件-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值