class Solution:
def decode(self, encoded: List[int], first: int) -> List[int]:
res = [first]
for num in encoded:
x = first^num
res.append(x)
first = x
return res
题目分析
- 考察了异或运算的性质
- 其实就是解一个方程:first*x=encoded[i]——>x = first*encoded[i]——>first = x
- 复习一下异或运算的性质
- 同值取0,异值取1;0+0=0 0+1=1 1+1=0
-
1. 归零律:a ⊕ a = 0
2. 恒等律:a ⊕ 0 = a
3. 交换律:a ⊕ b = b ⊕ a
4. 结合律:a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;
5. 自反:a ⊕ b ⊕ a = b.
6. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.
-
- 同值取0,异值取1;0+0=0 0+1=1 1+1=0