Leetcode#649-Dota2參議院

題目描述

Dota2 的世界里有兩個陣營:Radiant(天輝)和 Dire(夜魘)

Dota2 參議院由來自兩派的參議員組成∷δ眨現(xiàn)在參議院希望對一個 Dota2 游戲里的改變作出決定。他們以一個基于輪為過程的投票進(jìn)行牵素。在每一輪中浩考,每一位參議員都可以行使兩項權(quán)利中的一項:

  • 禁止一名參議員的權(quán)利:
    參議員可以讓另一位參議員在這一輪和隨后的幾輪中喪失所有的權(quán)利疆瑰。
  • 宣布勝利:
    如果參議員發(fā)現(xiàn)有權(quán)利投票的參議員都是同一個陣營的互站,他可以宣布勝利并決定在游戲中的有關(guān)變化汁展。

給定一個字符串代表每個參議員的陣營鹊碍。字母 “R” 和 “D” 分別代表了 Radiant(天輝)和 Dire(夜魘)。然后食绿,如果有 n 個參議員侈咕,給定字符串的大小將是 n。
以輪為基礎(chǔ)的過程從給定順序的第一個參議員開始到最后一個參議員結(jié)束器紧。這一過程將持續(xù)到投票結(jié)束耀销。所有失去權(quán)利的參議員將在過程中被跳過。
假設(shè)每一位參議員都足夠聰明铲汪,會為自己的政黨做出最好的策略宫纬,你需要預(yù)測哪一方最終會宣布勝利并在 Dota2 游戲中決定改變柠傍。輸出應(yīng)該是 Radiant 或 Dire祟同。

示例 1:

輸入:"RD"
輸出:"Radiant"
解釋:第一個參議員來自 Radiant 陣營并且他可以使用第一項權(quán)利讓第二個參議員失去權(quán)力焕参,因此第二個參議員將被跳過因為他沒有任何權(quán)利。然后在第二輪的時候齿梁,第一個參議員可以宣布勝利催植,因為他是唯一一個有投票權(quán)的人

示例 2:

輸入:"RDD"
輸出:"Dire"
解釋:
第一輪中,第一個來自 Radiant 陣營的參議員可以使用第一項權(quán)利禁止第二個參議員的權(quán)利
第二個來自 Dire 陣營的參議員會被跳過因為他的權(quán)利被禁止
第三個來自 Dire 陣營的參議員可以使用他的第一項權(quán)利禁止第一個參議員的權(quán)利
因此在第二輪只剩下第三個參議員擁有投票的權(quán)利,于是他可以宣布勝利

提示:
給定字符串的長度在 [1, 10,000] 之間.

解題思路

  • 貪心
    如果當(dāng)前參議院有權(quán)利,那么選按照投票順序的下一名敵對的議員,使其喪失權(quán)利查邢,這樣他便不能對我方造成損失蔗崎。
    由于我們總要挑選投票順序最早的議員,因此我們可以使用兩個隊列分別按照投票順序存儲天輝方和夜魘方每一名議員的投票時間扰藕。隨后我們就可以開始模擬整個投票的過程:

如果此時 某一方為空缓苛,那么就可以宣布另一方獲得勝利;

如果均不為空邓深,那么比較這兩個隊列的首元素未桥,就可以確定當(dāng)前行使權(quán)利的是哪一名議員。如果某方隊列的首元素較小芥备,那說明該方的議員行使權(quán)利冬耿,其會挑選對方的首元素對應(yīng)的那一名議員。因此萌壳,我們會將敵方元素永久地彈出亦镶,并將該方的首元素彈出,增加 n 之后再重新放回隊列袱瓮,這里 n 是給定的字符串 senate 的長度缤骨,即表示該議員會參與下一輪的投票。

作者:LeetCode-Solution

源碼

class Solution {
public:
    string predictPartyVictory(string senate) {
        int n=senate.length();
        queue<int> D,R;
        for(int i=0;i<n;i++)
        {
            if(senate[i]=='R')
            {
                R.push(i);
            }
            else
            {
                D.push(i);
            }
        }

        while(!D.empty()&&!R.empty())
        {
            int D_front=D.front();
            int R_front=R.front();
            if(D_front>R_front)
            {
                R.push(R_front+n);
            }
            else
            {
                D.push(D_front+n);
            }
            D.pop();
            R.pop();
        }
        if(D.empty())return "Radiant";
        else return "Dire";
    }
};

題目來源

來源:力扣(LeetCode)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尺借,一起剝皮案震驚了整個濱河市绊起,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燎斩,老刑警劉巖虱歪,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異栅表,居然都是意外死亡笋鄙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門谨读,熙熙樓的掌柜王于貴愁眉苦臉地迎上來局装,“玉大人,你說我怎么就攤上這事劳殖。” “怎么了拨脉?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵哆姻,是天一觀的道長。 經(jīng)常有香客問我玫膀,道長矛缨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮箕昭,結(jié)果婚禮上灵妨,老公的妹妹穿的比我還像新娘。我一直安慰自己落竹,他們只是感情好泌霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著述召,像睡著了一般朱转。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上积暖,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天藤为,我揣著相機(jī)與錄音,去河邊找鬼夺刑。 笑死缅疟,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遍愿。 我是一名探鬼主播窿吩,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼错览!你這毒婦竟也來了纫雁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤倾哺,失蹤者是張志新(化名)和其女友劉穎轧邪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羞海,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忌愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了却邓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硕糊。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腊徙,靈堂內(nèi)的尸體忽然破棺而出简十,到底是詐尸還是另有隱情,我是刑警寧澤撬腾,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布螟蝙,位于F島的核電站,受9級特大地震影響民傻,放射性物質(zhì)發(fā)生泄漏胰默。R本人自食惡果不足惜场斑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牵署。 院中可真熱鬧漏隐,春花似錦、人聲如沸奴迅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽半沽。三九已至爽柒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間者填,已是汗流浹背浩村。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留占哟,地道東北人心墅。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像榨乎,于是被迫代替她去往敵國和親怎燥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容