删除公共字符
题目描述
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
输入描述:
每个测试输入包含2个字符串
输出描述:
输出删除后的字符串
示例1
输入: They are students. aeiou
输出 Thy r stdnts.
解题思路
-
解法一
这里我们用到了unordered_map,通过unordered_map统计第二个字符串中的所有字符,然后遍历第一个字符串,找第一个字符串中的字符在第二个字符串中也有的,就不添加到临时创建的字符串ret中,剩下未出现在第二个字符串中的字符就添加至ret中,最后输出ret就是删除了第二个字符串中所有字符的第一个字符串。

-
解法二
这种方法就比较粗暴了,但是很好理解,遍历第一个字符串,到第二个字符串中找出现在第一个中也出现在第二个中的字符,得到该字符的下标,删除字符串中该下标对应的字符,最后返回第一个字符串即可。 -
解法三
这种方法其实和方法一的思路相似,这里用到了哈希表的思想,依旧是遍历第二个字符串将字符映射至哈希表对应的位置,再通过遍历第一个

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

被折叠的 条评论
为什么被折叠?



