LeetCode - 859 解題紀錄
題目: LeetCode - 859. Buddy Strings
題目說明
給兩個 String A
, B
,A
需要交換任意兩字元一次,求交換後的 A
是否等於 B
。
解題思路
先檢查兩者長度是否相等,若不相等則直接回傳 False。
接著檢查,若兩者原本就已經相等,則判斷 A
內是否有重複的字元,因為 A
一定要交換一次,若 A
中沒有重複的字元則交換後會變為不相等,這裡使用 hashset 來判斷。
最後遍歷兩者,將兩者字元不同的 index 儲存,最後判斷 diff
的大小是否為 2,若為 2 則判斷 A[diff[0]] 是否等於 B[diff[1]] 且 A[diff[1]] 是否等於 B[diff[0]]
( 此條件為檢查是否 A
元素互換後會等於 B
) 若都符合則回傳 True,否則回傳 False。
參考解法
1 | // fast IO |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Larry's notes!
評論