題目

解題概念

  • 此題簡單來說,就是給定兩個字串 st,確認 t 是否為 sAnagram (同字母異序字; 重組字; 變位字)
    • Anagram 定義 : 透過重新排列不同單字或詞彙的字母,進而組合而成的單字或詞彙 (通常只會使用原本單字的所有字母一次)
  • 而實際執行上,會用以下步驟方式處理 :
    1. s_listt_list 各自儲存 st 的字母
    2. 確認兩個陣列長度是否相等,若不同則直接回傳 False
    3. 進行 while 迴圈 :
      • 取出 t_list 的一個字母
      • 若該字母也有在 s_list 中出現,則雙方都移除此字母
      • 否則直接回傳 False
    4. 回傳 True

實際寫Code

  • 目標函式 : isAnagram(s, t)
    • Input : s: strt: str
    • Output : bool
  • 主要程式碼 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    s_list = list(s)
    t_list = list(t)
    if len(s_list) != len(t_list):
    return False

    while len(t_list) != 0 :
    target = t_list[0]
    if target in s_list :
    t_list.remove(target)
    s_list.remove(target)
    else:
    return False
    return True