检查一个字符串中字符的频率是否是Python中另一字符串中相同字符的频率的因数或倍数

假设我们有两个字符串s和t,我们必须检查s中一个字符的出现是t中的倍数还是一个因数。

因此,如果输入像s =“ xxyzzw” t =“ yyyxxxxzz”,则输出将为True,因为s中x的频率为2,而在t中为4,则sy仅出现一次,而在t中出现是三个y,在s和t中有相同数量的z,在s中有一个w,但在t中没有。

示例

让我们看下面的实现以更好地理解-

from collections import defaultdict

def solve(s, t):

   s_freq = defaultdict(int)

   t_freq = defaultdict(int)

   for i in range(0, len(s)):

      s_freq[s[i]] += 1

   for i in range(0, len(t)):

      t_freq[t[i]] += 1

   for ch in s_freq:

      if ch not in t_freq:

         continue

      if t_freq[ch] % s_freq[ch] == 0 or s_freq[ch] % t_freq[ch] == 0:

         continue

      else:

         return False

   return True

s = "xxyzzw"

t = "yyyxxxxzz"

print(solve(s, t))

输入值

"xxyzzw", "yyyxxxxzz"
输出结果
True

以上是 检查一个字符串中字符的频率是否是Python中另一字符串中相同字符的频率的因数或倍数 的全部内容, 来源链接: utcz.com/z/326296.html

回到顶部