每日基础题

2103. 环和杆

class Solution {
    public int countPoints(String rings) {
        char[] ch = rings.toCharArray();
        int[] nums = new int[10]; //代表10根杆
        //利用位运算的特点
        // 'R' 001  1
        // 'G' 010  2
        // 'B' 100  4
        //通过 | 操作,有相同时不变,不想同才发生变化
        for(int i = 0;i < ch.length; i += 2) {
            if(ch[i]=='R') {
                nums[ch[i+1]-'0'] |= 1; 
            }else if(ch[i]=='G') {
                nums[ch[i+1]-'0'] |= 2; 
            }else {
                nums[ch[i+1]-'0'] |= 4; 
            }
        }
        int ans = 0;
        for(int n : nums) {
            if(n==7) {
                ans++;
            }
        }
        return ans;
    }
}

 

你可能感兴趣的:(leetcode)