@Adatan

Как найти разницу двух срезов в Golang?

Предположим, у меня есть два среза:
slice1 := []string{"123", "12", "13"}
slice2 := []string{"123, "12, "13", "23}
Мне нужно сравнить их и лишнее значение, которого нет в другом, достать (значения внутри могут быть в любом порядке).
Причем я всегда точно буду знать, какой из срезов будет больше.
В питоне я бы просто сделал два множества и вычел бы из одного другое)
Но тут, мои полномочия не могут придумать нормальный алгоритм (а пытался я много)....
  • Вопрос задан
  • 1527 просмотров
Пригласить эксперта
Ответы на вопрос 2
@deliro
Если всё же нужно найти разницу множеств (то есть, без привязки элементов к их позициям), то делать нужно как-то так https://play.golang.org/p/EWsmVji_3aA

Если сделать, как предлагает Pardon Me! Where Do I Find 4giveness?, то результат твой "поползёт" после первого "лишнего" вот так: https://play.golang.org/p/pNVboCOaU__Q
Ответ написан
nikonor
@nikonor
Программист go, perl
Если массивы не большие, то сделайте мапу и посчитайте вхождения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы