自己的做法:定义3个长度为10的数组,分别对三个字母做标记,最后计算下标(满足三个数组都被标记)的个数。
优化:用位运算做标记
class Solution {
public:
int countPoints(string rings) {
int n = rings.size();
vector v(10);
unordered_map ump{{'R', 1}, {'G', 2}, {'B', 4}};
for (int i = 0; i < n - 1; i += 2) {
v[rings[i + 1] - '0'] |= ump[rings[i]];
}
return count(v.begin(), v.end(), 7);
}
};



