LC 1773. 统计匹配检索规则的物品数量
题目描述
这是 LeetCode 上的 1773. 统计匹配检索规则的物品数量 ,难度为 简单。
给你一个数组 items
,其中 $items[i] = [type{i}, color{i}, name_{i}]$ ,描述第 i
件物品的类型、颜色以及名称。
另给你一条由两个字符串 ruleKey
和 ruleValue
表示的检索规则。
如果第 i
件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 :
ruleKey = "type"
且 $ruleValue = type_{i}$ 。ruleKey = "color"
且 $ruleValue = color_{i}$。ruleKey = "name"
且 $ruleValue = name{i}$。
统计并返回 匹配检索规则的物品数量 。
示例 1:1
2
3
4
5输入:items = [["phone","blue","pixel"],["computer","silver","lenovo"],["phone","gold","iphone"]], ruleKey = "color", ruleValue = "silver"
输出:1
解释:只有一件物品匹配检索规则,这件物品是 ["computer","silver","lenovo"] 。
示例 2:1
2
3
4
5输入: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 <= 10^4$
- $1 <= type{i}.length, color{i}.length, name_{i}.length, ruleValue.length <= 10$
ruleKey
等于"type"
、"color"
或"name"
- 所有字符串仅由小写字母组成
模拟
根据题意进行模拟即可。
Java 代码:1
2
3
4
5
6
7
8
9class Solution {
public int countMatches(List<List<String>> items, String k, String v) {
int ans = 0, idx = k.charAt(0) == 't' ? 0 : k.charAt(0) == 'c' ? 1 : 2;
for (List<String> item : items) {
if (item.get(idx).equals(v)) ans++;
}
return ans;
}
}
TypeScript 代码:1
2
3
4
5
6
7function countMatches(items: string[][], k: string, v: string): number {
let ans = 0, idx = k[0] == 't' ? 0 : k[0] == 'c' ? 1 : 2
for (const item of items) {
if (item[idx] == v) ans++
}
return ans
}
Python 代码:1
2
3
4
5
6
7class Solution:
def countMatches(self, items: List[List[str]], k: str, v: str) -> int:
ans, idx = 0, 0 if k[0] == 't' else 1 if k[0] == 'c' else 2
for item in items:
if item[idx] == v:
ans += 1
return ans
- 时间复杂度:$O(n)$
- 空间复杂度:$O(1)$
最后
这是我们「刷穿 LeetCode」系列文章的第 No.1773
篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。
在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。
为了方便各位同学能够电脑上进行调试和提交代码,我建立了相关的仓库:https://github.com/SharingSource/LogicStack-LeetCode 。
在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!