649. Dota2 参议院
思路
可以用两个队列分别储存天辉和夜魇在数组的位置,先出手的肯定会禁止下一位对方阵营的选手,然后出手了就需要把位置+n再放入队列,以便处理下一个循环。最后只需判断那个队列剩余人数即可。
代码
class Solution {
public:
string predictPartyVictory(string senate) {
queue<int> R;
queue<int> D;
int n = senate.size();
for(int i = 0; i < n; i++) {
if(senate[i] == 'R') {
R.push(i);
}
else {
D.push(i);
}
}
while(!R.empty() && !D.empty()) {
int r = R.front();
int d = D.front();
D.pop();
R.pop();
if(r < d) {
R.push(r + n);
}
else {
D.push(d + n);
}
}
return R.empty()? "Dire" : "Radiant";
}
};