文章目录

  • 题目内容
  • 解题思路
  • 解题代码

题目内容

Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)

Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:

禁止一名参议员的权利:
参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。
宣布胜利:如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。

给定一个字符串代表每个参议员的阵营。字母 “R” 和 “D” 分别代表了 Radiant(天辉)和 Dire(夜魇)。然后,如果有 n 个参议员,给定字符串的大小将是 n。

以轮为基础的过程从给定顺序的第一个参议员开始到最后一个参议员结束。这一过程将持续到投票结束。所有失去权利的参议员将在过程中被跳过。

假设每一位参议员都足够聪明,会为自己的政党做出最好的策略,你需要预测哪一方最终会宣布胜利并在 Dota2 游戏中决定改变。输出应该是 Radiant 或 Dire。

示例 1:

输入:"RD"
输出:"Radiant"
解释:第一个参议员来自 Radiant 阵营并且他可以使用第一项权利让第二个参议员失去权 力,因此第二个参议员将被跳过因为他没有任何权利。然后在第二轮的时候,第一个参议员可以宣布胜利,因为他是唯一一个有投票权的人

解题思路

本题中谁先投票谁就可以使对方参议员失去行动权,于是得到了本题的局部最优解:禁掉对方接下来第一个开始行动的第一个人。

解题代码

class Solution {
public:string predictPartyVictory(string senate) {int i=0;while(i<senate.size()){int j=i+1;if(senate[i]==' '){i++;if(i==senate.size())i=0;continue;}while(j<senate.size()){if(senate[j]!=senate[i]&&senate[j]!=' '){senate[j]=' ';break;}j++;}if(j==senate.size()){j=0;while(j<i){if(senate[j]!=senate[i]&&senate[j]!=' '){senate[j]=' ';break;}j++;}}if(j==i){if(senate[j]=='R')return "Radiant";elsereturn "Dire";}i++;if(i==senate.size())i=0;}return " ";}
};

LeetCoed 649. Dota2 参议院相关推荐

  1. Leetcode 每日一题——649. Dota2 参议院

    649. Dota2 参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决 ...

  2. LeetCode 649. Dota2 参议院 | Python

    649. Dota2 参议院 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/dota2-senate/ 题目 Dota2 的世界里有两个阵营:Ra ...

  3. LeetCode每日一题--649. Dota2 参议院(贪心 队列)

    题目:跳转至 649. Dota2 参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏 ...

  4. 力扣649. Dota2参议院 (Java 详细题解)

    649. Dota2 参议院 一.原题题目(中等) 1.1 题目 ​ Dota2 的世界里有两个阵营:Radiant (天辉)和 Dire(夜魇).Dota2 参议院由来自两派的参议员组成.现在参议院 ...

  5. Java实现 LeetCode 649 Dota2 参议院(暴力大法)

    649. Dota2 参议院 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决 ...

  6. leetcode 649. Dota2 参议院(贪心算法)

    Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一个基于轮为过程的投 ...

  7. LeetCode 649. Dota2 参议院(循环队列)

    文章目录 1. 题目 2. 解题 1. 题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游 ...

  8. 649 Dota2 参议院(模拟)

    1. 问题描述: Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇).Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一 ...

  9. 649. Dota2 参议院

    题目 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成.现在参议院希望对一个 Dota2 游戏里的改变作出决定.他们以一个基于轮为过 ...

最新文章

  1. lamp wordpress
  2. boost::geometry::make用法的测试程序
  3. 计算机辅助分析及应用论文,故障树计算机辅助分析及应用研究-机械制造及自动化专业论文.docx...
  4. vue赋值成功后再回调_vue 回调赋值?
  5. 【渝粤教育】国家开放大学2019年春季 0233-22T学前儿童语言教育 参考试题
  6. 160 - 8 Andrnalin.1
  7. java bitset_Java BitSet cardinality()方法与示例
  8. 使用GIT来管理代码的心得
  9. python 教材 配套 试题库_Python语言应用2020满分完整版考 试题库大全
  10. java模板代码生成器(还不是有手就行)
  11. 服务器远程关机后开机开不了,远程开关机系统安全吗
  12. 分段线性函数三种MIP模型
  13. python sort函数
  14. Python制作日历
  15. 大数据分析——点“数”成金
  16. [交换生申请之后](http://simplemind.info/blog/?p=413)
  17. 在线小说阅读网站开源项目地址整合
  18. 2016-2019年最新前端工程师面试题
  19. 考研复习:有关连续的定理、间断点及其分类
  20. 2020买电脑的小技巧

热门文章

  1. 蔚来|数据分析实习生|面经
  2. 面经|快手|策略运营实习生(数据分析)-【电商】|30min
  3. 华为服务器系统关机命令,linux云服务器关机命令
  4. 【资源分享(免积分)】(视频)李宏毅2018最新GAN课程(lecture1--10),附srt字幕高免积分下载,侵删
  5. Linux 运行python命令
  6. 养老服务APP开发软件极大满足人们对于个性化养老服务的需求
  7. 计算机网络实验哈工大威海,哈工大威海计算机网络实验报告1
  8. JavaScript: 原型链继承(原理解析 + 代码实现 + 结构图解)
  9. android Activity全屏显示
  10. docker下gitlab安装、配置、汉化(完整版)