// 5952. 环和杆
class Solution {
public int countPoints(String rings) {
// 结果
int ans = 0;
// 记录所有环上的颜色种类
/*
单个:
1: R
2: G
4: B
组合:
1 + 2 : RG
1 + 4 : RB
2 + 4 : GB
1 + 2 + 4 = 7 :RGB // 我们使用这个判断是否已经存在三种颜色
*/
int[] ringArr = new int[10];
for(int i = 0; i < rings.length(); i += 2){
// 字母
char al = rings.charAt(i);
// 环的位置
int pos = rings.charAt(i + 1) - '0';
// 使用 位运算 的 与 运算去 记录 向当前 环 上添加 某种颜色
if(al == 'R')
ringArr[pos] |= 1;
else if(al == 'G')
ringArr[pos] |= 2;
else if(al == 'B')
ringArr[pos] |= 4;
}
// 计算同时拥有三种颜色环的个数
for(int i = 0; i < ringArr.length; i ++)
if(ringArr[i] == 7)
ans++;
// 返回结果
return ans;
}
}
数组、位运算[5952] 环和杆
最新推荐文章于 2024-09-02 10:11:55 发布