代码拉取完成,页面将自动刷新
同步操作将从 doocs/leetcode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
总共有 n
个颜色片段排成一列,每个颜色片段要么是 'A'
要么是 'B'
。给你一个长度为 n
的字符串 colors
,其中 colors[i]
表示第 i
个颜色片段的颜色。
Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Alice 先手 。
'A'
且 相邻两个颜色 都是颜色 'A'
,那么 Alice 可以删除该颜色片段。Alice 不可以 删除任何颜色 'B'
片段。'B'
且 相邻两个颜色 都是颜色 'B'
,那么 Bob 可以删除该颜色片段。Bob 不可以 删除任何颜色 'A'
片段。假设 Alice 和 Bob 都采用最优策略,如果 Alice 获胜,请返回 true
,否则 Bob 获胜,返回 false
。
示例 1:
输入:colors = "AAABABB" 输出:true 解释: AAABABB -> AABABB Alice 先操作。 她删除从左数第二个 'A' ,这也是唯一一个相邻颜色片段都是 'A' 的 'A' 。 现在轮到 Bob 操作。 Bob 无法执行任何操作,因为没有相邻位置都是 'B' 的颜色片段 'B' 。 因此,Alice 获胜,返回 true 。
示例 2:
输入:colors = "AA" 输出:false 解释: Alice 先操作。 只有 2 个 'A' 且它们都在字符串的两端,所以她无法执行任何操作。 因此,Bob 获胜,返回 false 。
示例 3:
输入:colors = "ABBBBBBBAAA" 输出:false 解释: ABBBBBBBAAA -> ABBBBBBBAA Alice 先操作。 她唯一的选择是删除从右数起第二个 'A' 。 ABBBBBBBAA -> ABBBBBBAA 接下来轮到 Bob 操作。 他有许多选择,他可以选择任何一个 'B' 删除。 然后轮到 Alice 操作,她无法删除任何片段。 所以 Bob 获胜,返回 false 。
提示:
1 <= colors.length <= 105
colors
只包含字母 'A'
和 'B'
统计字符串中连续出现 3 个 'A' 或 3 个 'B' 的个数,分别记为 cnt1, cnt2。只要 cnt1 大于 cnt2,返回 true,否则返回 false。
class Solution:
def winnerOfGame(self, colors: str) -> bool:
a = b = 0
cnt1 = cnt2 = 0
for c in colors:
if c == 'A':
a += 1
if a > 2:
cnt1 += 1
b = 0
else:
b += 1
if b > 2:
cnt2 += 1
a = 0
return cnt1 > cnt2
class Solution {
public boolean winnerOfGame(String colors) {
int a = 0, b = 0;
int cnt1 = 0, cnt2 = 0;
for (char c : colors.toCharArray()) {
if (c == 'A') {
++a;
if (a > 2) {
++cnt1;
}
b = 0;
} else {
++b;
if (b > 2) {
++cnt2;
}
a = 0;
}
}
return cnt1 > cnt2;
}
}
class Solution {
public:
bool winnerOfGame(string colors) {
int a = 0, b = 0;
int cnt1 = 0, cnt2 = 0;
for (char& c : colors) {
if (c == 'A') {
++a;
if (a > 2) ++cnt1;
b = 0;
} else {
++b;
if (b > 2) ++cnt2;
a = 0;
}
}
return cnt1 > cnt2;
}
};
func winnerOfGame(colors string) bool {
var a, b, cnt1, cnt2 int
for _, c := range colors {
if c == 'A' {
a++
if a > 2 {
cnt1++
}
b = 0
} else {
b++
if b > 2 {
cnt2++
}
a = 0
}
}
return cnt1 > cnt2
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。