检查Python中一个字符串的字符是否可以通过交换形成另一个字符串


假设我们有两个字符串s和t,我们必须检查是否可以通过交换s的字符来生成t。

因此,如果输入类似于s = "worldlloeh" t = "helloworld",则输出将为True,因为我们可以交换"worldlloeh"中的字符以构成"helloworld"。

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

  • s_len := s的长度,t_len := t的长度
  • 如果s_len不等于t_len,则
    • 返回False
  • freq := 一个映射,用于存储s中所有字符及其频率
  • 对于从0到t_len的i,执行以下操作:
    • freq[t[i]] := freq[t[i]] - 1
    • 如果freq[t[i]] < 0,则
      • 返回False
  • 返回True

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

示例

在线演示

from collections import defaultdict
def solve(s, t):
   s_len = len(s)
   t_len = len(t)
   if (s_len != t_len):
      return False
   freq = defaultdict(int)
   for char in s :
      freq[char] += 1
   for i in range(t_len) :
      freq[t[i]] -= 1
      if freq[t[i]] < 0:
         return False
   return True
s = "worldlloeh"
t = "helloworld"
print(solve(s, t))

输入

"worldlloeh", "helloworld"

输出

True

更新于:2020-12-30

浏览量:112

启动你的职业生涯

完成课程获得认证

开始学习
广告