删除公共字符
题目描述
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
输入描述:
每个测试输入包含2个字符串
输出描述:
输出删除后的字符串
示例1
输入: They are students. aeiou
输出 Thy r stdnts.
解题思路
-
解法一
这里我们用到了unordered_map,通过unordered_map统计第二个字符串中的所有字符,然后遍历第一个字符串,找第一个字符串中的字符在第二个字符串中也有的,就不添加到临时创建的字符串ret中,剩下未出现在第二个字符串中的字符就添加至ret中,最后输出ret就是删除了第二个字符串中所有字符的第一个字符串。
-
解法二
这种方法就比较粗暴了,但是很好理解,遍历第一个字符串,到第二个字符串中找出现在第一个中也出现在第二个中的字符,得到该字符的下标,删除字符串中该下标对应的字符,最后返回第一个字符串即可。 -
解法三
这种方法其实和方法一的思路相似,这里用到了哈希表的思想,依旧是遍历第二个字符串将字符映射至哈希表对应的位置,再通过遍历第一个