Re: [閒聊] 每日leetcode
看板Marginalman作者sustainer123 (溫水佳樹的兄長大人)時間10月前 (2025/01/17 10:18)推噓2(2推 0噓 0→)留言2則, 2人參與討論串1290/1552 (看更多)
https://leetcode.com/problems/neighboring-bitwise-xor
2683. Neighboring Bitwise XOR
給定一長度為n的陣列derived
此陣列為長度為n的二進位陣列original的相鄰元素經由xor運算的結果
運算規則如下:
if index == n-1:
derived[i] = original[i] ^ original[0]
else:
derived[i] = original[i] ^ original[i+1]
請判斷是否存在有效的original
Example 1:
Input: derived = [1,1,0]
Output: true
Explanation: A valid original array that gives derived is [0,1,0].
derived[0] = original[0] ⊕ original[1] = 0 ⊕ 1 = 1
derived[1] = original[1] ⊕ original[2] = 1 ⊕ 0 = 1
derived[2] = original[2] ⊕ original[0] = 0 ⊕ 0 = 0
Example 2:
Input: derived = [1,1]
Output: true
Explanation: A valid original array that gives derived is [0,1].
derived[0] = original[0] ⊕ original[1] = 1
derived[1] = original[1] ⊕ original[0] = 1
Example 3:
Input: derived = [1,0]
Output: false
Explanation: There is no valid original array that gives derived.
Constraints:
n == derived.length
1 <= n <= 105
The values in derived are either 0's or 1's
思路:
以例二為例
derived[0] = original[0] ⊕ original[1] = 1
derived[1] = original[1] ⊕ original[0] = 1
derived[0] ^ derived[1] =
original[0] ⊕ original[1] ^ original[1] ⊕ original[0]
相同元素的xor會抵消 所以結果必為零
我們只要檢查derived所有元素的xor是不是0就有答案了
Python Code:
class Solution:
def doesValidArrayExist(self, derived: List[int]) -> bool:
result = 0
for n in derived:
result ^= n
if result == 1:
return False
else:
return True
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.179.129 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1737080296.A.69B.html
推
01/17 10:28,
10月前
, 1F
01/17 10:28, 1F
推
01/17 13:40,
10月前
, 2F
01/17 13:40, 2F
討論串 (同標題文章)
完整討論串 (本文為第 1290 之 1552 篇):