精華區beta Marginalman 關於我們 聯絡資訊
蝦J8亂寫 最後zip unpack那邊 因為空list會出錯 搞了好久== 就先這樣了 應該很多地方可以優化 def survivedRobotsHealths(self, positions: List[int], healths: List[int], directions: str) -> List[int]: n = len(positions) idx = [i+1 for i in range(n)] positions, healths, directions, idx = zip(*sorted(zip(positions, healths, directions, idx))) positions, healths, directions, idx = list(positions), list(healths), list(directions), list(idx) print(positions) stk = [] ans = [] for i in range(n): if directions[i] == "R": stk.append(i) else: while stk: if healths[stk[-1]] < healths[i]: stk.pop() healths[i] -= 1 elif healths[stk[-1]] == healths[i]: stk.pop() healths[i] = 0 break else: healths[stk[-1]] -= 1 break if not stk and healths[i] > 0: ans.append(i) ans = ans + stk ans = [(idx[i], healths[i]) for i in ans] if ans: _, ans = zip(*sorted(ans)) return list(ans) else: return [] -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.146.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1720843000.A.293.html
nozomizo: 大師 07/13 11:58
a114514: 你們寫for迴圈都不會用掛號包起來嗎 07/13 12:00
oin1104: 大師 07/13 12:00
Rushia: 寶 py沒括號 07/13 12:01
sustainer123: 哲維 這py 07/13 12:01
a114514: 好吧 我只學過C++ 07/13 12:01
oin1104: c++如果只有一行的話 好像也可以不用括號 07/13 12:02
a114514: 是沒錯 但是我強迫症會發作 07/13 12:05