2020-12-11 Dota2參議院
阿新 • • 發佈:2020-12-12
題目
解題思路
- 若當前所有議員都是天輝或夜魘的人,那麼直接得出結果;
- 否則,需要從對方還可以發言的議員中選擇一位,將其禁掉。選擇誰呢?應當優先選擇這一輪中還能夠發言的第一個對方議員,其次選擇下一輪中第一個發言的議員。
實現程式碼
class Solution { public: string predictPartyVictory(string senate) { queue<int> radiant, dire; int n = senate.length(); for (int i = 0; i < n; i++){ if (senate[i] == 'R') radiant.push(i); else dire.push(i); } while (!radiant.empty() && !dire.empty()){ if (radiant.front() < dire.front()){ radiant.push(n + radiant.front()); } else { dire.push(n + dire.front()); } dire.pop(); radiant.pop(); } if (dire.empty()){ return "Radiant"; } else { return "Dire"; } } };