You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现两字符串移除共同字符后合并?示例:string1=aabcdef,string2=abcghi

解决思路与实现代码

核心思路

这个需求拆解起来很简单,核心就是三步走:

  • 提取公共字符:先找出两个字符串里都存在的字符(用集合处理最省心,交集操作和成员查询效率都很高)
  • 过滤原字符串:分别遍历两个原字符串,只保留不在公共字符集合里的字符
  • 合并结果:把两个过滤后的字符串拼接起来,就是最终的final

代码实现(Python)

string1 = "aabcdef"
string2 = "abcghi"

# 1. 获取两个字符串的公共字符集合
common_chars = set(string1) & set(string2)
# 这里得到的是 {'a', 'b', 'c'}

# 2. 过滤两个字符串,移除所有公共字符
filtered_string1 = ''.join([char for char in string1 if char not in common_chars])
filtered_string2 = ''.join([char for char in string2 if char not in common_chars])
# filtered_string1 是 "def",filtered_string2 是 "ghi"

# 3. 合并得到最终字符串
final = filtered_string1 + filtered_string2
print(final)  # 输出: defghi

关于你给出的示例结果说明

你提到最终结果是adefghi,这和标准的“移除所有公共字符”逻辑不符——因为a是两个字符串的公共字符,按照需求应该被移除。如果确实需要得到这个结果,那需求可能是“移除仅在两个字符串中都出现的b和c,保留a”,这种情况下可以调整过滤逻辑:

# 只移除指定的公共字符 b、c
target_chars = {'b', 'c'}
filtered_string1 = ''.join([char for char in string1 if char not in target_chars])
filtered_string2 = ''.join([char for char in string2 if char not in target_chars])
final = filtered_string1 + filtered_string2
print(final)  # 输出: adefghi

建议先确认清楚具体需求:到底是移除所有公共字符的实例,还是有其他特殊规则~


内容的提问来源于stack exchange,提问作者MaTHwoG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:35:04