[英]How to XOR two string arrays in Golang?
假設我有兩個字符串數組。
A = [“ ab”,“ cd”,“ ef”,“ gh”]
B = [“ ef”,“ gh”]
我想做C = A ^ B
其中C = [“ ab”,“ cd”]
我知道Golang允許按字節進行XOR,但是我在文檔中沒有看到任何有關字符串數組的內容。
我將如何去做呢? 也許有人為此做了一個實用程序?
在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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.