https://leetcode.com/problems/dota2-senate/description/?envType=study-plan-v2&envId=leetcode-75

class Solution:
def predictPartyVictory(self, senate: str) -> str:
dq = deque([])
rq = deque([])
for i in range(len(senate)):
if senate[i] == 'D':
dq.append(i)
else:
rq.append(i)
idx = 0
while True:
if idx in dq:
if rq:
x = rq.popleft()
dq.append(dq.popleft())
else:
return 'Dire'
elif idx in rq:
if dq:
x = dq.popleft()
rq.append(rq.popleft())
else:
return 'Radiant'
idx = (idx + 1) % len(senate)
class Solution:
def predictPartyVictory(self, senate: str) -> str:
dq = deque([])
rq = deque([])
for i in range(len(senate)):
if senate[i] == 'D':
dq.append(i)
else:
rq.append(i)
idx = len(senate)
while dq and rq:
d, r = dq.popleft(), rq.popleft()
if d > r:
rq.append(idx)
else:
dq.append(idx)
idx += 1
return 'Radiant' if rq else 'Dire'