当前位置: 首页 > news >正文

力扣--649.Dota2参议院

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

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

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

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

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

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

示例 1:

输入:senate = "RD"
输出:"Radiant"
解释:
第 1 轮时,第一个参议员来自 Radiant 阵营,他可以使用第一项权利让第二个参议员失去所有权利。
这一轮中,第二个参议员将会被跳过,因为他的权利被禁止了。
第 2 轮时,第一个参议员可以宣布胜利,因为他是唯一一个有投票权的人

示例 2:

输入:senate = "RDD"
输出:"Dire"
解释:
第 1 轮时,第一个来自 Radiant 阵营的参议员可以使用第一项权利禁止第二个参议员的权利。
这一轮中,第二个来自 Dire 阵营的参议员会将被跳过,因为他的权利被禁止了。
这一轮中,第三个来自 Dire 阵营的参议员可以使用他的第一项权利禁止第一个参议员的权利。
因此在第二轮只剩下第三个参议员拥有投票的权利,于是他可以宣布胜利

提示:

  • n == senate.length
  • 1 <= n <= 104
  • senate[i] 为 'R' 或 'D'
class Solution {public String predictPartyVictory(String senate) {Queue<Integer> radiant=new LinkedList<>();Queue<Integer> dire=new LinkedList<>();int n=senate.length();for(int i=0;i<n;i++){if(senate.charAt(i)=='R'){radiant.add(i);}else{dire.add(i);}}while(!radiant.isEmpty()&&!dire.isEmpty()){int i = radiant.poll();int j = dire.poll();if(i<j){radiant.add(i+n);}else{dire.add(j+n);}}return radiant.isEmpty()?"Dire":"Radiant";}
}

http://www.lryc.cn/news/437132.html

相关文章:

  • vim 安装与配置教程(详细教程)
  • 【WPF】Popup的使用
  • 力扣刷题之2576.求出最多标记下标
  • 黑马JavaWeb开发笔记16——请求(postman、简单参数、实体参数、@RequestParam映射)
  • Corrupt block relative dba: 0x02c0b382 (file 11, block 45954)
  • 二叉排序树在实际生活应用中作用
  • 单例模式的学习
  • 54 mysql 中各种 timeout - connect/wait/interactive/read/write_timeout
  • 实战案例(5)防火墙通过跨三层MAC识别功能控制三层核心下面的终端
  • 【智能流体力学】数值模拟中的稳态和瞬态
  • Vue-Route4 ts
  • sizeof和strlen的小知识
  • Java项目: 基于SpringBoot+mybatis+maven宠物咖啡馆平台(含源码+数据库+毕业论文)
  • 戴尔14代服务器配置IDRAC9远程配置说明
  • 如何让你家里的电脑连接公司的远程桌面
  • 软件:分享8个常用视频剪辑免费软件,你都用过吗?
  • TS 常用类型
  • 半导体芯闻--20240913
  • C盘空间不足如何解决?解决C盘空间不足的7个方法
  • 比 GPT-4 便宜 187 倍的Mistral 7B (非广告)
  • FFmpeg与OpenCV联合开发
  • Docker 部署 Redis (图文并茂超详细)
  • Docker基础-Docker Compose使用
  • GPT撰写开题报告教程——课题确定及文献调研
  • SprinBoot+Vue高校就业管理系统的设计与实现
  • 【人工智能】Transformers之Pipeline(十八):文本生成(text-generation)
  • 判断当前用户登录时常是否超过两个小时
  • nacos明明配置了远程连接地址却一直连接本地的详细配置解释
  • Superset二次开发之源码 run-server.sh 分析
  • Java 之四种内部类详解