假设我们有两个字符串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