首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Golang中异或两个字符串数组?

如何在Golang中异或两个字符串数组?
EN

Stack Overflow用户
提问于 2016-12-14 02:31:18
回答 1查看 3.8K关注 0票数 0

假设我有两个字符串数组。

A= "ab“、"cd”、"ef“、"gh”

B= "ef","gh“

我想做C= A^B

其中C= "ab","cd“

我知道Golang允许异或字节,但我在文档中没有看到任何字符串数组。

我该怎么做呢?也许有人已经为此创造了一种实用工具?

EN

回答 1

Stack Overflow用户

发布于 2016-12-14 03:36:28

这看起来不像是在Go中的标准库中的东西,但是这里有一些代码可以发挥作用:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41133870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档