Python程式檢查兩個字串是否可以透過交換字元變得相等


假設我們有兩個小寫字串 s 和 t,它們長度相同。我們可以從 s 中選擇一個字元,從 t 中選擇另一個字元,並將它們交換。我們可以進行任意次數的此操作。最後,我們必須檢查是否可以使這兩個字串相同。

因此,如果輸入類似於 s = "abcd" t = "cdab",則輸出為 True

為了解決這個問題,我們將遵循以下步驟:

  • fre := 一個列表,包含 s 和 t 的連線字串中每個元素的頻率
  • 對於fre中所有值的列表中的每個cnt:
    • 如果 cnt mod 2 等於 1,則
      • 返回 False
  • 返回 True

示例

讓我們來看下面的實現,以便更好地理解:

from collections import Counter
def solve(s, t):
   fre = Counter(s+t)

   for cnt in fre.values():
      if cnt % 2:
         return False

   return True

s = "abcd"
t = "cdab"
print(solve(s, t))

輸入

"abcd", "cdab"

輸出

True

更新於:2021年10月14日

645 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.