檢查Python中一個字串的字元是否可以透過交換形成另一個字串
假設我們有兩個字串s和t,我們必須檢查是否可以透過交換s的字元來生成t。
因此,如果輸入類似於s = "worldlloeh" t = "helloworld",則輸出將為True,因為我們可以交換"worldlloeh"中的字元以構成"helloworld"。
為了解決這個問題,我們將遵循以下步驟:
- s_len := s的長度,t_len := t的長度
- 如果s_len不等於t_len,則
- 返回False
- freq := 一個對映,用於儲存s中所有字元及其頻率
- 對於從0到t_len的i,執行以下操作:
- freq[t[i]] := freq[t[i]] - 1
- 如果freq[t[i]] < 0,則
- 返回False
- 返回True
讓我們看看下面的實現,以便更好地理解:
示例
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
廣告