簡體   English   中英

如何對Golang中的兩個字符串數組進行XOR?

[英]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
}

https://play.golang.org/p/SDPhNIQ66E

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM