Re: [閒聊] 每日leetcode

看板Marginalman作者 (JerryChung)時間1年前 (2024/09/13 10:08), 編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串851/1548 (看更多)
https://leetcode.com/problems/xor-queries-of-a-subarray ※ 引述《enmeitiryous (enmeitiryous)》之銘言: : 題目: XOR Queries of a Subarray : 給你一個整數vector:arr,並給你一個2D vector: queries,你需要回傳一個整數vector : ans,其中ans[i]代表為arr從quieries[i][0]的位置一路xor到queries[i][1]的位置的值 : ,若queries[i]的兩個值相等是回傳arr[queries[i][0]]。 : 思路: : 我們可以先做一個prefix xor的vector,其中prefix_xor[i]代表arr[0]一路xor到arr[i] : 的值,任意的[i to j]的xor值(i!=0)就是prefix_xor[j] xor prefix_xor[i-1] 思路:看大師的思路 Python Code: class Solution: def xorQueries(self,arr:List[int],queries:List[List[int]]) -> List[int]: prefix_arr = {0: arr[0]} for i in range(1, len(arr)): prefix_arr[i] = prefix_arr[i-1] ^ arr[i] return [ prefix_arr[q[1]] ^ (prefix_arr[q[0]-1] if q[0] != 0 else 0) for q in queries ] 原本用 eval 想當然耳遇到 TLE 了 不過為啥 [eval(' ^ '.join(f'arr[{n}]' for n in range(q[0], q[1]+1))) for q in queries] 在電腦可以 提交卻失敗了 是 Python 版本問題嗎 電腦是 3.12.4 網站是 3.11.10 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.52.67 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1726193331.A.33B.html

09/13 12:52, 1年前 , 1F
eval應該只是括號問題, 改成f'{arr[n]}'就好了
09/13 12:52, 1F
文章代碼(AID): #1cuvwpCx (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1cuvwpCx (Marginalman)