假设我有两个字符串数组。
A= "ab“、"cd”、"ef“、"gh”
B= "ef","gh“
我想做C= A^B
其中C= "ab","cd“
我知道Golang允许异或字节,但我在文档中没有看到任何字符串数组。
我该怎么做呢?也许有人已经为此创造了一种实用工具?
发布于 2016-12-14 03:36:28
这看起来不像是在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
}https://stackoverflow.com/questions/41133870
复制相似问题