“Эм… это что? Возведение в степень?” 😅 Спойлер: нет. Это побитовая операция "исключающего ИЛИ" (exclusive OR). aba ^ b000101011110 Теперь — внимание: XOR обладает магическими свойствами, которые можно использовать, чтобы решать задачи: Эти свойства — не просто математика. Это инструменты. Сейчас покажу, как с их помощью решать задачи, которые решают миллионы на LeetCode. Условие:
В массиве каждый элемент встречается два раза, кроме одного. Найдите это уникальное число. Пример: nums = [4, 1, 2, 1, 2]
# Ответ: 4 def single_number(nums):
result = 0
for num in nums:
result ^= num # Накопительный XOR
return result 💡 O(n) по времени и O(1) по памяти — мечта интервьюера. Да, вы можете проверить a == b, не используя ==, !=, if и других удобств цивилизации. def is_equal(a, b):
return (a ^ b) == 0 # если XOR даёт 0 — числа одинаковые print(is_equal(10, 10)) # True
print(is_equal(10, 9)) # False 🛠 Иногда такой трюк дают на собеседовании, чтобы проверить мышление "