#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
static constexpr int POLE_NUM = 10;
static constexpr int COLOR_NUM = 3;
int getColorId(char color) {
if (color == 'R') {
return 0;
}
else if (color == 'G') {
return 1;
}
else if (color == 'B') {
return 2;
}
return -1; // 未知颜色
}
int countPoints(string rings) {
vector<vector<int>> state(POLE_NUM, vector<int>(COLOR_NUM, 0));
//vector<int>(COLOR_NUM, 0)这部分代码创建了一个COLOR_NUM 一维向量,并将每个元素初始化魏0,
//vector<vector<int>> state(POLE_NUM, vector<int>(COLOR_NUM, 0)):这部分代码创建了一个长度为 POLE_NUM 的二维向量,其中每个元素都是一个长度为 COLOR_NUM 的一维向量。整个二维向量表示了所有杆子的颜色情况。POLE_NUM 表示杆子的数量。
int n = rings.size();
for (int i = 0; i < n; i += 2) {
char color = rings[i];
int pole_index = rings[i + 1] - '0';
state[pole_index][getColorId(color)] = 1;
}
int res = 0;
for (int i = 0; i < POLE_NUM; i++) {
bool flag = true;
for (int j = 0; j < COLOR_NUM; j++) {
if (state[i][j] == 0) {
flag = false;
break;
}
}
if (flag) {
res++;
}
}
return res;
}
};
int main() {
Solution sol;
string rings = "B0B6G0R6R0R6G9";
//string rings = "G4";
int result = sol.countPoints(rings);
cout << "Output: " << result << endl;
return 0;
}
vector<vector<int>> state(POLE_NUM, vector<int>(COLOR_NUM, 0));
//vector<int>(COLOR_NUM, 0)这部分代码创建了一个COLOR_NUM 一维向量,并将每个元素初始化魏0,
//vector<vector<int>> state(POLE_NUM, vector<int>(COLOR_NUM, 0)):这部分代码创建了一个长度为 POLE_NUM 的二维向量,其中每个元素都是一个长度为 COLOR_NUM 的一维向量。整个二维向量表示了所有杆子的颜色情况。POLE_NUM 表示杆子的数量。