檢查Python中一個字串中字元的頻率是否是另一個字串中相同字元頻率的因子或倍數
假設我們有兩個字串s和t,我們必須檢查s中字元的出現次數是否是t中字元出現次數的倍數或因子。
因此,如果輸入類似於s = "xxyzzw" t = "yyyxxxxzz",則輸出為True,因為s中x的頻率為2,t中為4;s中y只出現一次,但t中有三個y;s和t中z的個數相同;s中有一個w,但t中沒有。
為了解決這個問題,我們將遵循以下步驟:
- s_freq := 包含s中所有字元及其頻率的對映
- t_freq := 包含t中所有字元及其頻率的對映
- 對於s_freq中的每個字元ch:
- 如果ch不在t_freq中,則
- 進行下一次迭代
- 如果t_freq[ch]可以被s_freq[ch]整除,或者s_freq[ch]可以被t_freq[ch]整除,則
- 進行下一次迭代
- 否則,
- 返回False
- 如果ch不在t_freq中,則
- 返回True
示例
讓我們看看下面的實現以更好地理解:
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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP