LeetCode 1773. 统计匹配检索规则的物品数量

简介: 给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。

网络异常,图片无法展示
|


题目


给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。


另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。


如果第 i 件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 :


ruleKey == "type" 且 ruleValue == typei 。 ruleKey == "color" 且 ruleValue == colori 。 ruleKey == "name" 且 ruleValue == namei 。 统计并返回 匹配检索规则的物品数量 。

 

示例 1:
输入:items = [["phone","blue","pixel"],["computer","silver","lenovo"],["phone","gold","iphone"]], ruleKey = "color", ruleValue = "silver"
输出:1
解释:只有一件物品匹配检索规则,这件物品是 ["computer","silver","lenovo"] 。
示例 2:
输入:items = [["phone","blue","pixel"],["computer","silver","phone"],["phone","gold","iphone"]], ruleKey = "type", ruleValue = "phone"
输出:2
解释:只有两件物品匹配检索规则,这两件物品分别是 ["phone","blue","pixel"] 和 ["phone","gold","iphone"] 。注意,["computer","silver","phone"] 未匹配检索规则。


提示:


1 <= items.length <= 104 1 <= typei.length, colori.length, namei.length, ruleValue.length <= 10 ruleKey 等于 "type"、"color" 或 "name" 所有字符串仅由小写字母组成


解题思路


class Solution:
    def countMatches(self, items: List[List[str]], ruleKey: str, ruleValue: str) -> int:
        type = {
            "type": 0,
            "color": 1,
            "name": 2
        }
        index = type[ruleKey]
        resList = [i[index] for i in items]
        return resList.count(ruleValue)
if __name__ == '__main__':
    # items = [["phone", "blue", "pixel"], ["computer", "silver", "lenovo"],
    #          ["phone", "gold", "iphone"]]
    # ruleKey = "color"
    # ruleValue = "silver"
    items = [["phone", "blue", "pixel"], ["computer", "silver", "phone"],
             ["phone", "gold", "iphone"]]
    ruleKey = "type"
    ruleValue = "phone"
    ret = Solution().countMatches(items, ruleKey, ruleValue)
    print(ret)
目录
相关文章
|
7月前
|
算法 测试技术 C#
区间合并|LeetCode2963:统计好分割方案的数目
区间合并|LeetCode2963:统计好分割方案的数目
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
4月前
|
存储 算法 Java
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
48 0
|
5月前
|
存储 算法
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
|
7月前
[leetcode~数位动态规划] 2719. 统计整数数目 hard
[leetcode~数位动态规划] 2719. 统计整数数目 hard
|
7月前
|
存储 Java C++
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
42 1
|
7月前
leetcode2376. 统计特殊整数
leetcode2376. 统计特殊整数
63 1
|
7月前
leetcode 2520 统计能整除数字的位数
leetcode 2520 统计能整除数字的位数
37 0
|
7月前
|
算法 测试技术 C#
【图论】【分类讨论】LeetCode3017按距离统计房屋对数目
【图论】【分类讨论】LeetCode3017按距离统计房屋对数目
|
7月前
|
Serverless
leetcode2719. 统计整数数目
leetcode2719. 统计整数数目
51 0