【每日一题】删除公共字符

【每日一题】删除公共字符


相关推荐阅读👀

  【C/C++】关于循环/多次输入字符或字符串时,清除缓冲区的问题
  【C/C++】常见的几种字符串的输入与输出
  【C/C++】C++中字符串的输入与循环输入



1、题目来源

  牛客网:删除公共字符


1、题目描述

  输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入They are students.aeiou,则删除之后的第一个字符串变成Thy r stdnts.


2、输入/出描述

  输入描述:

每个测试输入包含2个字符串

  输出描述

输出删除后的字符串


4、示例

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


5、解题思路

  题目中没有要求循环输入,可以不用考虑。

  从第一个字符串中删除第二个字符串中所有的字符。那么至少遍历一遍第一个字符串,拿到第一个字符串的第i个元素看其是否在第二个字符串,没有在就可以把这第i个元素存放在临时变量中,遍历完第一个字符串后,输出临时变量即可。

  另外看到有小伙伴用到哈希映射的思想,是将第二个字符串的字符都映射到 hashtable 数组中,用来判断一个字符是否在这个字符串中,欢迎小伙伴评论区下方讨论哈哈哈 👨‍💻


6、代码展示

#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str1,str2,str3;
	getline(cin, str1);  //通过getline将回车前的输入流读到str1当中
	getline(cin, str2);
	int i = 0;
	while(str1[i])  //遍历str1
	{
		if (str2.find(str1[i],0) == str2.npos)
        //find在str2中未找到返回str2.npos,find的第二个参数为 0表示查找整个字符串
		{
			str3 += str1[i];  //把str1[i]加至str3
		}
			i++;
	}
	cout << str3 << endl;
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值