题解
找AAA* BBB* *代表对应的A 或者 B 至少3个连续A 或者 连续B才能算一个,每增加一个A则增加一个 B也是如此
比较这种模式的共有A B各有多少个 A的个数>B的个数 则true 否则 返回false
/*
* @lc app=leetcode.cn id=2038 lang=cpp
*
* [2038] 如果相邻两个颜色均相同则删除当前颜色
*/
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
// @lc code=start
class Solution {
public:
bool winnerOfGame(string colors) {
int i = 0;
int A = 0, B = 0;
int n = colors.length();
while (i < n) {
if (colors[i] == 'A') {
int t = 1;
i++;
while(i < n && colors[i] == 'A') {
i++;
t++;
}
if (t >= 3) A += t-2;
continue;
}
if (colors[i] == 'B') {
int t = 1;
i++;
while(i < n && colors[i] == 'B') {
i++;
t++;
}
if (t >= 3) B += t-2;
}
}
if (A > B) return true;
else return false;
}
};