检查一个字符串的字符是否可以在 Python 中交换为另一个字符串

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

因此,如果输入类似于 s = "worldlloeh" t = "helloworld",那么输出将为 True,因为我们可以将字符从 "worldlloeh" 交换为 "helloworld"。

为了解决这个问题,我们将按照以下步骤操作 -

  • s_len := s 的大小,t_len := t 的大小

  • 如果 s_len 与 t_len 不同,则

    • 返回错误

  • freq := 将所有字符及其频率存储在 s 中的映射

  • 对于 0 到 t_len 范围内的 i,请执行

    • 返回错误

    • 频率[t[i]] := 频率[t[i]] - 1

    • 如果 freq[t[i]] < 0,则

  • 返回真

让我们看看以下实现以获得更好的理解 -

示例

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

猜你喜欢