思路简析
个人感觉不错的一道题,看到题目说将字符串A中把字符串B所包含的字符全删掉,想到挨个取B中的字符B[i],然后利用双指针法删掉A中的B[i]。具体细节和注意事项如下:
- 输入的是含有空格的字符串,用cin不能完整输入,这里用getline()函数,对getline()不熟悉的小伙伴可以看本文最下面的链接。
- 利用双指针删除,这里没有算法基础的小伙伴可能会有一点懵,可以看一下卡尔哥的讲解:代码随想录
- 这里用的是万能头文件#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博客