Python程序检查两个字符串是否可以通过交换字符变得相等


假设我们有两个小写字符串 s 和 t,它们长度相同。我们可以从 s 中选择一个字符,从 t 中选择另一个字符,并将它们交换。我们可以进行任意次数的此操作。最后,我们必须检查是否可以使这两个字符串相同。

因此,如果输入类似于 s = "abcd" t = "cdab",则输出为 True

为了解决这个问题,我们将遵循以下步骤:

  • fre := 一个列表,包含 s 和 t 的连接字符串中每个元素的频率
  • 对于fre中所有值的列表中的每个cnt:
    • 如果 cnt mod 2 等于 1,则
      • 返回 False
  • 返回 True

示例

让我们来看下面的实现,以便更好地理解:

from collections import Counter
def solve(s, t):
   fre = Counter(s+t)

   for cnt in fre.values():
      if cnt % 2:
         return False

   return True

s = "abcd"
t = "cdab"
print(solve(s, t))

输入

"abcd", "cdab"

输出

True

更新于:2021年10月14日

645 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告