Greedy Queue String 649. Dota2 Senate¶ Time: $O(n)$ Space: $O(n)$ C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27class Solution { public: string predictPartyVictory(string senate) { const int n = senate.length(); queue<int> qR; queue<int> qD; for (int i = 0; i < n; ++i) if (senate[i] == 'R') qR.push(i); else qD.push(i); while (!qR.empty() && !qD.empty()) { const int indexR = qR.front(); qR.pop(); const int indexD = qD.front(); qD.pop(); if (indexR < indexD) qR.push(indexR + n); else qD.push(indexD + n); } return qR.empty() ? "Dire" : "Radiant"; } }; Was this page helpful? Thanks for your feedback! Thanks for your feedback! Help us improve this page by using our feedback form.