All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1701_1800.s1773_count_items_matching_a_rule.Solution Maven / Gradle / Ivy

There is a newer version: 1.41
Show newest version
package g1701_1800.s1773_count_items_matching_a_rule;

// #Easy #Array #String #2022_05_02_Time_3_ms_(98.33%)_Space_46.9_MB_(92.77%)

import java.util.List;

/**
 * 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:
 *
 * *   `ruleKey == "type"` and ruleValue == typei.
 * *   `ruleKey == "color"` and ruleValue == colori.
 * *   `ruleKey == "name"` and ruleValue == namei.
 *
 * 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:**
 *
 * *   1 <= items.length <= 104
 * *   1 <= typei.length, colori.length, namei.length, ruleValue.length <= 10
 * *   `ruleKey` is equal to either `"type"`, `"color"`, or `"name"`.
 * *   All strings consist only of lowercase letters.
**/
public class Solution {
    public int countMatches(List> 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 item : items) {
            if (item.get(checkRuleNum).equals(ruleValue)) {
                ans++;
            }
        }
        return ans;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy