题目:

给你一个数组 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"
所有字符串仅由小写字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/count-items-matching-a-rule
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

模拟:由于需要由ruleKey来确定 ruleValue的下标,而ruleKey 只能为 "type"、"color" 或 "name",故直接取ruleKey 的第一个字符来确定items中item的下标,遍历items数组,统计出item[i] == ruleValue的个数,进行返回。

java代码:

 1 class Solution {
2 public int countMatches(List<List<String>> items, String ruleKey, String ruleValue) {
3 int count = 0;
4 int i = ruleKey.charAt(0) == 't'? 0 : (ruleKey.charAt(0) == 'c' ? 1 : 2);
5 for(List<String> item : items){
6 if(item.get(i).equals(ruleValue)){
7 count++;
8 }
9 }
10 return count;
11 }
12 }

 python3代码:

1 class Solution:
2 def countMatches(self, items: List[List[str]], ruleKey: str, ruleValue: str) -> int:
3 dic = {'type' : 0, 'color' : 1, 'name' : 2}
4 count = 0
5 for item in items:
6 if item[dic[ruleKey]] == ruleValue:
7 count += 1
8 return count

力扣1773(java&python)-统计匹配检索规则的物品数量(简单)的更多相关文章

  1. 力扣485. 最大连续1的个数-C语言实现-简单题

    题目 [题目传送门] 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3 ...

  2. 利用Python统计微信联系人男女比例以及简单的地区分布

    寒暄的话不多说,直接进入主题. 运行效果图: [准备环境] Python版本:v3.5及其以上 开发工具:随意,此处使用Pycharm [依赖包] 1.itchat (CMD运行:pip instal ...

  3. 简易安装python统计包

    PythonCharm简易安装python统计包及 本文介绍使用pythonCharm IDE 来安装Python统计包或一些packages的简单过程,基本无任何技术难度,顺便提一提笔者在安装过程中 ...

  4. LeetCode(力扣)——Search in Rotated Sorted Array2 搜索旋转排序数组 python实现

    题目描述: python实现 Search in Rotated Sorted Array2 搜索旋转排序数组   中文: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0 ...

  5. LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现

    题目描述: python实现 Search in Rotated Sorted Array 搜索旋转排序数组   中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1 ...

  6. 力扣—Reorder List(重排链表)python实现

    题目描述: 中文: 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点 ...

  7. 力扣 ——Linked List Cycle II(环形链表 II) python实现

    题目描述: 中文: 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). ...

  8. 力扣——Linked List Cycle(环形链表) python实现

    题目描述: 中文: 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. ...

  9. 力扣——Copy List with Random Pointer(复制带随机指针的链表) python实现

    题目描述: 中文: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的深拷贝. 示例: 输入:{"$id":" ...

  10. 力扣——Reverse Nodes in k-Group(K 个一组翻转链表) python实现

    题目描述: 中文: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序 ...

随机推荐

  1. 常见字符的ASCII码值

    ASCII值就是字符对应的十进制数值,字符就是可以表示的字符.

  2. Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR

    原文:Jitpack发布Android库出现Direct local .aar file dependencies are not supported when building an AAR - S ...

  3. linux文件编辑

    1.VIM基本概述 1.什么是VIM? vi和vim是Linux下的一个文本编辑工具.(可以理解为windows的记事本,或word文档) 2.为什么要使用VIM? 因为Linux系统一切皆为文件,而 ...

  4. 自定义MarkupExtension的学习,以及WPF中Combobox绑定枚举类型

    我们上一期讲到ComBobox绑定数据,https://www.cnblogs.com/guchen33/p/17630808.html 这次我们简单化一下, 正常来讲WPF中绑定不了枚举的像这样 / ...

  5. 15 分钟带你感受 CSS :has() 选择器的强大

    最近看到了许多关于 :has() 选择器的知识点,在此总结下来. MDN 对 :has() 选择器 的解释是这样的: CSS 函数式伪类  :has()  表示一个元素,如果作为参数传递的任何相对选择 ...

  6. axios封装(处理token跟get中Content-Type的请求问题)

    axios封装 import axios from 'axios' //引入axios import store from '@/store/index' //引入store //此处引入router ...

  7. cadence软件画版图操作

    cadence软件操作 1.原理图设计 电路的原理图设计和许多的电路设计软件是类似的,这里大致介绍一下基本的操作. 首先是新建一个cell的原理图: library manager>file&g ...

  8. KingbaseES V8R6 运维案例 --ksql访问动态库问题

    KingbaseES V8R6数据库运维案例之---ksql访问动态库问题 案例说明: CentOS环境下,在安装和初始化数据库实例后,启动数据库服务,通过ksql连接访问时出现以下故障: 经检查,是 ...

  9. Windows线程API —CreateTimerQueueTimer/DeleteTimerQueueTimer的使用

    问题代码: 1 #include<windows.h> 2 #include<iostream> 3 #include<thread> 4 HANDLE h1; 5 ...

  10. wordpress自建博客站,在页脚添加网站总运行时间

    wordpress自建博客站,在页脚添加网站总运行时间 笔者使用的主题是 GeneratePress 版本:3.1.3 <span id="momk" style=" ...