Skip to content

Instantly share code, notes, and snippets.

@SLonger
Created July 24, 2019 02:45
Show Gist options
  • Save SLonger/92828573c79de108c764da69ead30459 to your computer and use it in GitHub Desktop.
Save SLonger/92828573c79de108c764da69ead30459 to your computer and use it in GitHub Desktop.
fsf
// 1. oldstring element is not in new : abandon(delete)
// 2. new element is not in oldstring : add(add)
func Difference(oldstring []string, newstring []string) map[string]string {
var diff = make(map[string]string)
// Loop two times, first to find oldstring strings not in newstring,
// second loop to find newstring strings not in oldstring
for i := 0; i < 2; i++ {
for _, s1 := range oldstring {
found := false
for _, s2 := range newstring {
if s1 == s2 {
found = true
break
}
}
// String not found. We add it to return slice
if !found && i == 0 {
diff[s1] = "delete"
}
if !found && i != 0 {
diff[s1] = "add"
}
}
// Swap the slices, only if it was the first loop
if i == 0 {
oldstring, newstring = newstring, oldstring
}
}
return diff
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment