站内公告:

我们的虚拟社区正式开通了

Main Menu

golang字符串列表操作(求包含、交集、并集、差集)

作者 virtual, 2022-09-20 04:52 下午

« 上一篇主题 - 下一篇主题 »

virtual

func ContainsString(src []string, dest string) bool {
    for _, item := range src {
        if item == dest {
            return true
        }
    }
    return false
}

// DifferenceStrings 取前者src与后者dest两个字符串列表的差集
func DifferenceStrings(src []string, dest []string) []string {
    res := make([]string, 0)
    for _, item := range src {
        if !ContainsString(dest, item) {
            res = append(res, item)
        }
    }
    return res
}

// IntersectionStrings 取两个字符串列表的交集
func IntersectionStrings(src []string, dest []string) []string {
    res := make([]string, 0)
    for _, item := range src {
        if ContainsString(dest, item) {
            res = append(res, item)
        }
    }
    return res
}

// UnionString 取两个字符串列表的并集
func UnionStrings(src []string, dest []string) []string {
    res := make([]string, 0)
    res = append(res, src...)
    for _, item := range dest {
        if !ContainsString(res, item) {
            res = append(res, item)
        }
    }
    return res
}