LeetCode in Kotlin

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

class Solution {
    fun countPoints(rings: String): Int {
        val redHashMap: MutableMap<Int, Int> = HashMap()
        val greenHashMap: MutableMap<Int, Int> = HashMap()
        val blueHashMap: MutableMap<Int, Int> = HashMap()
        run {
            var i = 0
            while (i <= rings.length - 2) {
                val charOne = rings[i]
                val charTwo = rings[i + 1]
                if (charOne == 'R') {
                    redHashMap[Character.getNumericValue(charTwo)] = 123
                } else if (charOne == 'G') {
                    greenHashMap[Character.getNumericValue(charTwo)] = 123
                } else {
                    blueHashMap[Character.getNumericValue(charTwo)] = 123
                }
                i = i + 2
            }
        }
        var result = 0
        for (i in 0..9) {
            if (redHashMap.containsKey(i) &&
                greenHashMap.containsKey(i) &&
                blueHashMap.containsKey(i)
            ) {
                result++
            }
        }
        return result
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy