class Solution: def predictVictory(self , s: str) -> str: n = len(s) stackR = [] stackD = [] for i in range(n):#时间复杂度O(n) f, s = s[0], s[1:] if f == 'R': stackR.append(i) #生成Red栈 else: stackD.append(i) #生成Dark栈 while stackR and stackD:#时间复杂度O(n) if stackR[0] > stackD[0]: stackR.pop(0) #投票出人 s1 = stackD.pop(0)+n stackD.append(s1) #投票者这轮用过投票权,但未出局,下一轮仍可投票,加n下一轮排队等号 else: s2 = stackR.pop(0)+n stackD.pop(0) stackR.append(s2) if stackR: return 'Red' if stackD: return 'Dark'