檢查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

更新於:2020-12-30

瀏覽量:112

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告