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

手机如何建免费网站推广普通话的手抄报怎么画

手机如何建免费网站,推广普通话的手抄报怎么画,dw用层还是表格做网站快,门店到什么地步可以做网站LeetCode Problem 2038: 如果相邻两个颜色均相同则删除当前颜色 (Winner of the Game) 在本篇博客中#xff0c;我们将深入探讨 LeetCode 第2038题——如果相邻两个颜色均相同则删除当前颜色。该问题涉及字符串处理与游戏策略#xff0c;旨在考察如何在给定规则下判断游戏的…LeetCode Problem 2038: 如果相邻两个颜色均相同则删除当前颜色 (Winner of the Game) 在本篇博客中我们将深入探讨 LeetCode 第2038题——如果相邻两个颜色均相同则删除当前颜色。该问题涉及字符串处理与游戏策略旨在考察如何在给定规则下判断游戏的胜负。我们将详细解析问题、探索解决方案并通过代码示例展示如何实现这一逻辑。 问题描述 背景 给定一个由 A 和 B 组成的字符串 colors每个字符代表一个颜色片段。Alice 和 Bob 在玩一个游戏他们轮流从字符串中删除颜色。Alice 先手。 游戏规则 删除规则 Alice 可以删除一个 A条件是该 A 的相邻两个颜色片段也都是 A。Bob 可以删除一个 B条件是该 B 的相邻两个颜色片段也都是 B。 限制 无法删除位于字符串两端的颜色片段因为它们没有两个相邻的颜色片段。每次删除一个颜色片段后字符串会重新连接新的相邻关系会重新建立。 胜负判定 如果一方无法进行删除操作则该玩家输掉游戏另一方获胜。假设 Alice 和 Bob 都采用最优策略判断 Alice 是否获胜。 示例 示例 1 输入: colors AAABABB 输出: true 解释: - Alice 删除中间的 A字符串变为 AABABB。 - Bob 无法进行删除操作因为没有三个连续的 B。 - Alice 获胜。示例 2 输入: colors AA 输出: false 解释: - Alice 无法进行删除操作因为字符串长度不足。 - Bob 获胜。示例 3 输入: colors ABBBBBBBAAA 输出: false 解释: - Alice 删除最后的 A字符串变为 ABBBBBBBAA。 - Bob 删除一个 B字符串变为 ABBBBBBAA。 - Alice 无法进行删除操作。 - Bob 获胜。提示 1 colors.length 10^5colors 只包含字母 A 和 B 解决方案 要判断 Alice 是否能获胜我们需要计算 Alice 和 Bob 各自能进行多少次删除操作然后比较两者的次数。 关键观察 连续字符的分组对于连续的 A 或 B计算其长度。可删除次数对于每一组连续的字符只有当长度大于等于3时才能进行删除操作。具体的删除次数为 长度 - 2。 例如连续5个 AAlice 可以进行 5 - 2 3 次删除。 总删除次数 Alice 的总删除次数为所有连续 A 组的 (长度 - 2) 之和。Bob 的总删除次数为所有连续 B 组的 (长度 - 2) 之和。 胜负判定如果 Alice 的删除次数大于 Bob 的删除次数则 Alice 获胜返回 true否则返回 false。 算法步骤 初始化两个计数器 alice_moves 和 bob_moves 分别记录 Alice 和 Bob 的可删除次数。遍历字符串 colors统计连续 A 和 B 的长度。对于每个连续的 A 或 B 组计算其可删除次数并累加到相应的计数器。最后比较 alice_moves 和 bob_moves 的值判断 Alice 是否获胜。 复杂度分析 时间复杂度O(n)其中 n 是字符串 colors 的长度。我们只需遍历一次字符串。空间复杂度O(1)仅使用了常数级别的额外空间。 代码实现 以下是基于上述思路的 Python 实现 class Solution:def winnerOfGame(self, colors: str) - bool:alice_moves 0bob_moves 0n len(colors)i 0while i n:current_char colors[i]count 1# 统计当前字符连续出现的次数while i 1 n and colors[i 1] current_char:count 1i 1# 如果连续字符数大于等于3计算可删除次数if count 3:if current_char A:alice_moves count - 2else:bob_moves count - 2i 1# Alice 必须有比 Bob 更多的删除次数才能获胜return alice_moves bob_moves代码解析 初始化 alice_moves 0 bob_moves 0 n len(colors) i 0alice_moves 和 bob_moves 分别记录 Alice 和 Bob 的可删除次数。n 是字符串的长度i 是当前遍历的索引。 遍历字符串 while i n:current_char colors[i]count 1# 统计当前字符连续出现的次数while i 1 n and colors[i 1] current_char:count 1i 1# 如果连续字符数大于等于3计算可删除次数if count 3:if current_char A:alice_moves count - 2else:bob_moves count - 2i 1对于每一个字符统计其连续出现的次数 count。如果 count 3则根据字符类型增加相应的删除次数。最后移动到下一个不同的字符。 胜负判断 return alice_moves bob_moves如果 Alice 的删除次数大于 Bob 的则 Alice 获胜返回 true否则返回 false。 示例运行 让我们通过几个示例来验证我们的算法。 示例 1 colors AAABABB solution Solution() print(solution.winnerOfGame(colors)) # 输出: True解析 连续 A 的组AAA可删除次数为 3 - 2 1。连续 B 的组B、BB均不足3个不可删除。Alice 的删除次数 1Bob 的删除次数 0。因为 1 0Alice 获胜。 示例 2 colors AA solution Solution() print(solution.winnerOfGame(colors)) # 输出: False解析 连续 A 的组AA不足3个不可删除。Alice 的删除次数 0Bob 的删除次数 0。因为 0 不是大于 0Alice 无法获胜。 示例 3 colors ABBBBBBBAAA solution Solution() print(solution.winnerOfGame(colors)) # 输出: False解析 连续 A 的组A、AAA可删除次数为 1。连续 B 的组BBBBBBB可删除次数为 7 - 2 5。Alice 的删除次数 1Bob 的删除次数 5。因为 1 小于 5Bob 获胜。 总结 我们了解到如何通过统计连续字符的数量来判断 Alice 和 Bob 各自的删除次数。关键在于识别连续的 A 和 B 组并根据规则计算可删除次数。最终通过比较两者的删除次数我们可以高效地判断游戏的胜负。
http://www.dnsts.com.cn/news/23935.html

相关文章:

  • 联通营业厅做网站维护软件开发公司组织结构图
  • 网站建设费用计入哪个科目如何的找网站建设公司
  • 网站建设价格标准新闻网站如何三合一
  • 唐山建设厅官方网站最新足球新闻头条
  • 东海县网站建设wordpress 放视频
  • 做网站 图片 文件夹 放哪儿黄骅港客运站电话号码
  • 淘宝客怎么建网站软件技术专科生的出路
  • 谷歌找网站后台怎样开发公司的网站建设
  • 100个免费推广网站下载湖南省公共资源交易中心
  • 蚌埠做网站建设费用榜单设计
  • 网站的备案号手机网站设计建设服务
  • 网络公司做机场网站认可服务好的装修公司
  • 海南电商网站建设关于建网站新闻
  • .net如何做网站网站生鲜建设市场分析
  • 陕西网站制作商江西论坛
  • 网站建设与维护视频教程中国建筑工程网官网登录
  • 做app模板下载网站九江巿建设局网站
  • 遵义网站开发的公司国外做的好的电商网站推荐
  • 做网站准备材料微网
  • 江苏省义务教育标准化建设网站免费做团购网站的软件有哪些
  • 建站教学在那个网站做义工好
  • 单位门户网站建设网站模块是啥
  • 服装网站建设价格网络服务合同范本大全
  • 对外网站建设情况汇报网站建设的行业动态
  • 成都快速建站公司友情链接平台网站
  • 做挂件的网站微信公众平台怎么登录
  • 网站建设步骤详解你认为优酷该网站哪些地方可以做的更好_为什么?
  • 做产品表情的网站做访问量高的网站
  • 成品网站源码在线看电脑网络公司经营范围
  • 可以做视频的一个网站自己去注册公司需要花多少钱