函數的功能是從輸入的字元串切片中去除重覆的元素,並返回去重後的結果。具體的實現邏輯如下: 創建一個空的結果切片result,用於存儲去重後的字元串。 創建一個臨時的maptempMap,用於存放不重覆的字元串。map的鍵是字元串,值是位元組類型。 遍歷輸入的字元串切片slc中的每個元素e: 首先,獲取 ...
函數的功能是從輸入的字元串切片中去除重覆的元素,並返回去重後的結果。具體的實現邏輯如下:
- 創建一個空的結果切片
result
,用於存儲去重後的字元串。 - 創建一個臨時的map
tempMap
,用於存放不重覆的字元串。map的鍵是字元串,值是位元組類型。 - 遍歷輸入的字元串切片
slc
中的每個元素e
:- 首先,獲取
tempMap
的長度,並將其賦值給變數l
。 - 然後,將字元串
e
作為鍵,值設置為0,存入tempMap
中。 - 如果加入
tempMap
後,tempMap
的長度發生了變化(即原本不存在的元素被成功添加),則說明該元素是第一次出現,不是重覆的。- 將該元素
e
追加到結果切片result
中。
- 將該元素
- 首先,獲取
- 遍歷完所有元素後,返回結果切片
result
,即為去重後的結果。
// 通過map主鍵唯一的特性過濾重覆元素 func RemoveDuplicateStrings(strs []string) []string { result := []string{} tempMap := map[string]byte{} // 存放不重覆字元串 for _, e := range strs { l := len(tempMap) tempMap[e] = 0 if len(tempMap) != l { // 加入map後,map長度變化,則元素不重覆 result = append(result, e) } } return result }