LeetCode-in-Java

1773. Count Items Matching a Rule

Easy

You are given an array items, where each items[i] = [typei, colori, namei] describes the type, color, and name of the ith item. You are also given a rule represented by two strings, ruleKey and ruleValue.

The ith item is said to match the rule if one of the following is true:

Return the number of items that match the given rule.

Example 1:

Input: items = [[“phone”,”blue”,”pixel”],[“computer”,”silver”,”lenovo”],[“phone”,”gold”,”iphone”]], ruleKey = “color”, ruleValue = “silver”

Output: 1

Explanation: There is only one item matching the given rule, which is [“computer”,”silver”,”lenovo”].

Example 2:

Input: items = [[“phone”,”blue”,”pixel”],[“computer”,”silver”,”phone”],[“phone”,”gold”,”iphone”]], ruleKey = “type”, ruleValue = “phone”

Output: 2

Explanation: There are only two items matching the given rule, which are [“phone”,”blue”,”pixel”] and [“phone”,”gold”,”iphone”]. Note that the item [“computer”,”silver”,”phone”] does not match.

Constraints:

Solution

import java.util.List;

public class Solution {
    public int countMatches(List<List<String>> items, String ruleKey, String ruleValue) {
        int ans = 0;
        int checkRuleNum = 0;
        if (ruleKey.equals("color")) {
            checkRuleNum = 1;
        } else if (ruleKey.equals("name")) {
            checkRuleNum = 2;
        }
        for (List<String> item : items) {
            if (item.get(checkRuleNum).equals(ruleValue)) {
                ans++;
            }
        }
        return ans;
    }
}