【牛客网】—— 删除公共字符三种解法

博客围绕删除公共字符问题展开,题目要求从第一个字符串中删除第二个字符串的所有字符。给出三种解题思路,一是用unordered_map统计字符;二是遍历并删除重复字符;三是用哈希表思想映射字符,最后都给出了代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除公共字符

题目描述

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

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

输出描述:

输出删除后的字符串

示例1

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

解题思路
  • 解法一
    这里我们用到了unordered_map,通过unordered_map统计第二个字符串中的所有字符,然后遍历第一个字符串,找第一个字符串中的字符在第二个字符串中也有的,就不添加到临时创建的字符串ret中,剩下未出现在第二个字符串中的字符就添加至ret中,最后输出ret就是删除了第二个字符串中所有字符的第一个字符串。
    删除公共字符

  • 解法二
    这种方法就比较粗暴了,但是很好理解,遍历第一个字符串,到第二个字符串中找出现在第一个中也出现在第二个中的字符,得到该字符的下标,删除字符串中该下标对应的字符,最后返回第一个字符串即可。

  • 解法三
    这种方法其实和方法一的思路相似,这里用到了哈希表的思想,依旧是遍历第二个字符串将字符映射至哈希表对应的位置,再通过遍历第一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值