code: func deduplicate(s []string) []string {
  	encountered := map[string]bool{}
  	ret := make([]string, 0)
  	for i := range s {
  		if encountered[s[i]] {
  			continue
  		}
  		encountered[s[i]] = true
  		ret = append(ret, s[i])
  	}
  	return ret
  }
docs: // deduplicate removes any duplicated values and returns a new slice, keeping the order unchanged