检查一个字符串中字符的频率是否是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 defaultdictdef 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