3
我試圖將兩個字符串數組合併爲一個。結果數組應該刪除所有重複元素。減少數組長度
func MergeArrays(str1, str2 []string) []string {
c := make([]string, len(str1)+len(str2), cap(str1)+cap(str2))
k := make(map[string]bool)
for i, s := range str1 {
if _, ok := k[s]; !ok {
c[i] = s
k[s] = true
}
}
for j, s := range str2 {
if _, ok := k[s]; !ok {
c[j+len(str1)] = s
k[s] = true
}
}
return c
}
測試數據
str1 := []string{"a", "b"}
str2 := []string{"c", "d", "a"}
輸出: "a", "b", "c", "d"
length of the array "5"
我得到我想要的輸出,但數組的長度應該是4
,而不是5
。我可以理解爲什麼它打印5
,但我想輸出數組長度4
。 是否有其他方式來合併兩個數組。
我想這不會工作,如果有所述'str1'陣列中重複的元素。 – 2014-10-28 14:01:13
是的,這不會查找任何分片中的重複內容,只會用於組合兩者時出現的重複內容。 – thwd 2014-10-28 14:14:08