找出字串切片子集之間的區別
要確定區分一個字串切片子集與另一個字符串切片子集的元素,請考慮以下內容問題:
<p>Here is my desired outcome</p> <pre class="brush:php;toolbar:false">slice1 := []string{"foo", "bar","hello"} slice2 := []string{"foo", "bar"} difference(slice1, slice2) => ["hello"]
I need to determine the disparities between these two string slice sections!
解決方案
解決此問題的有效方法假設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 }
透過使用映射來有效地確定元素成員資格,差分函數可以有效地識別和隔離存在的那些元素在一個切片中而不是在另一個切片中,提供字串切片子集之間的準確比較。
以上是如何在 Go 中高效找到兩個字串切片之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!