假设我有两个字符串数组。
A = [“ab”,“cd”,“ef”,“gh”] B = [“ef”,“gh”]
我想做C = A ^ B
其中C = [“ab”,“cd”]
我知道Golang允许按字节顺序进行XOR,但我在文档中没有看到任何字符串数组。
我该怎么做呢?也许有人为此做过一个实用工具?
答案 0 :(得分:1)
这似乎不会出现在Go中的标准库中,但是这里有一些代码可以解决这个问题:
package main
import (
"fmt"
)
func main() {
A := []string{"ab", "cd", "ef", "gh"}
B := []string{"ef", "gh"}
fmt.Println(xor(A,B))
}
func xor(list1, list2 []string) []string {
set1 := make(map[string]bool)
for _, s := range list1 {
set1[s] = true
}
set2 := make(map[string]bool)
for _, s := range list2 {
set2[s] = true
}
var c []string
for _, s := range list1 {
if !set2[s] {
c = append(c, s)
}
}
for _, s := range list2 {
if !set1[s] {
c = append(c, s)
}
}
return c
}