假设我有两个字符串数组。
A = [ "ab", "cd", "ef", "gh"]
B = [ "ef", "gh"]
我想做 C = A^B
其中 C = ["ab", "cd"]
我知道 Golang 允许按字节异或,但我在文档中没有看到任何关于字符串数组的信息。
我该怎么做呢?也许有人已经为此制作了实用程序?
最佳答案
这看起来不像是 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
}
关于go - 如何在 Golang 中对两个字符串数组进行异或?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133870/