为了账号安全,请及时绑定邮箱和手机立即绑定

如何找到两片字符串之间的差异

如何找到两片字符串之间的差异

Go
叮当猫咪 2021-06-30 09:57:13
这是我想要的结果slice1 := []string{"foo", "bar","hello"}slice2 := []string{"foo", "bar"}difference(slice1, slice2)=> ["hello"]我正在寻找两个字符串切片之间的区别!
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

假设 Go 映射是 ~O(1),这里是一个 ~O(n) 差异函数,适用于未排序的切片。


// difference returns the elements in `a` that aren't in `b`.

func difference(a, b []string) []string {

    mb := make(map[string]struct{}, len(b))

    for _, x := range b {

        mb[x] = struct{}{}

    }

    var diff []string

    for _, x := range a {

        if _, found := mb[x]; !found {

            diff = append(diff, x)

        }

    }

    return diff

}


查看完整回答
反对 回复 2021-07-05
  • 3 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信