LeetCode-in-Java

2103. Rings and Rods

Easy

There are n rings and each ring is either red, green, or blue. The rings are distributed across ten rods labeled from 0 to 9.

You are given a string rings of length 2n that describes the n rings that are placed onto the rods. Every two characters in rings forms a color-position pair that is used to describe each ring where:

For example, "R3G2B1" describes n == 3 rings: a red ring placed onto the rod labeled 3, a green ring placed onto the rod labeled 2, and a blue ring placed onto the rod labeled 1.

Return the number of rods that have all three colors of rings on them.

Example 1:

Input: rings = “B0B6G0R6R0R6G9”

Output: 1

Explanation:

Thus, the number of rods with all three colors is 1.

Example 2:

Input: rings = “B0R0G0R9R0B0G0”

Output: 1

Explanation:

Thus, the number of rods with all three colors is 1.

Example 3:

Input: rings = “G4”

Output: 0

Explanation: Only one ring is given. Thus, no rods have all three colors.

Constraints:

Solution

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public int countPoints(String rings) {
        Map<Integer, Integer> redHashMap = new HashMap<>();
        Map<Integer, Integer> greenHashMap = new HashMap<>();
        Map<Integer, Integer> blueHashMap = new HashMap<>();
        for (int i = 0; i <= rings.length() - 2; i = i + 2) {
            char charOne = rings.charAt(i);
            char charTwo = rings.charAt(i + 1);

            if (charOne == 'R') {
                redHashMap.put(Character.getNumericValue(charTwo), 123);
            } else if (charOne == 'G') {
                greenHashMap.put(Character.getNumericValue(charTwo), 123);
            } else {
                blueHashMap.put(Character.getNumericValue(charTwo), 123);
            }
        }
        int result = 0;
        for (int i = 0; i <= 9; i++) {
            if (redHashMap.containsKey(i)
                    && greenHashMap.containsKey(i)
                    && blueHashMap.containsKey(i)) {
                result++;
            }
        }
        return result;
    }
}