У меня есть массив с четным числом int
с, и я хочу проверить, являются ли все эти элементы «парными», то есть [0, 1, 0, 1]
имеет пару 1
с и пару 0
с. vs [0, 1, 1, 2]
имеет только один 0
и один 2
.
Моей первой мыслью было привести его к набору и проверить, имеет ли набор длину половины оригинала:
def isPaired(arr):
return len(arr) / 2 == len(set(arr)
Но это неверно, если arr = [0, 1, 0, 0]
.
. Моей следующей мыслью было отсортировать массив и сравнить каждый четный индекс со следующим индексом:
def isPaired(arr):
arr.sort
for i in range(0, len(arr) - 1):
if i % 2 == 0 && arr[i] != arr[i+1]:
return False
return True
Это работает, но время выполнения - это, по крайней мере, время выполнения такого рода. Есть ли решение этой проблемы без сортировки массива?