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

如何比较两个字符串并输出无重复公共字符?代码输出重复问题求助

解决字符串公共字符去重问题

嘿,我懂你现在的困扰啦——你想提取两个字符串的公共字符,但不希望结果里出现重复的字符,比如输入a = "baac"、b = " fdeabac "时,你要的是"abc"或"bca"这类无重复的结果,而不是重复的"aabaac"。

核心思路

要实现这个需求,关键是抓住「去重」和「找公共」两个核心点:

  • 先把每个字符串里的字符去重,得到各自的唯一字符集合
  • 取两个集合的交集,这个交集就是同时存在于两个字符串里的所有唯一公共字符
  • 最后把交集转成字符串即可(顺序可以按需调整)

具体代码示例(以Python为例)

a = "baac"
b = " fdeabac "

# 先清理字符串中的空格(如果有需要),再转成集合自动去重
unique_a = set(a.replace(" ", ""))  # 去掉所有空格,若只需清理首尾用strip()
unique_b = set(b.replace(" ", ""))

# 计算两个集合的交集,得到公共的唯一字符
common_unique_chars = unique_a & unique_b  # 等价于unique_a.intersection(unique_b)

# 把集合转成字符串,这里用sorted让结果按字母顺序排列,也可直接join(集合无序)
result = ''.join(sorted(common_unique_chars))
print(result)  # 输出: "abc"

为什么这个方法有效?

集合(Set)的特性就是自动去重,而且集合的交集操作能直接筛选出同时存在于两个集合中的元素。这样就完美避开了重复计数、重复添加字符的问题,一步到位得到你想要的无重复公共字符。

如果不需要按固定顺序输出,直接''.join(common_unique_chars)就可以,结果可能是"bca"或者其他顺序,但都是符合要求的无重复公共字符组合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:59:28