首页 > 其他分享 >LeetCode 1773. 统计匹配检索规则的物品数量

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

时间:2025-01-16 10:32:11浏览次数:3  
标签:检索 count 匹配 1773 索引 数组 规则 物品 LeetCode

在这个问题中,我们被要求统计一个物品数组中满足特定检索规则的物品数量。每个物品由其类型、颜色和名称定义,而检索规则由规则键和规则值指定。我们的任务是找出数组中满足这些规则的物品数量。

问题描述

解题思路

  1. 定义索引映射:首先,我们需要定义一个映射,将规则键("type"、"color"、"name")映射到物品数组中对应的索引(0、1、2)。

  2. 遍历物品数组:然后,我们遍历物品数组,对于每个物品,检查其是否满足给定的检索规则。

  3. 匹配规则:根据规则键,我们检查物品的相应属性是否与规则值匹配。

  4. 统计匹配数量:如果物品满足规则,我们增加匹配计数。

代码实现

#include <vector>
#include <string>
#include <unordered_map>
using namespace std;

class Solution {
public:
    int countMatches(vector<vector<string>>& items, string ruleKey, string ruleValue) {
        unordered_map<string, int> keyToIndex = {
            {"type", 0},
            {"color", 1},
            {"name", 2}
        };

        int count = 0;
        int index = keyToIndex[ruleKey]; // 根据规则键获取对应的索引

        for (auto& item : items) {
            if (item[index] == ruleValue) {
                count++;
            }
        }

        return count;
    }
};

代码解释

  1. 定义索引映射:使用 unordered_map 将规则键映射到物品数组中的索引。

  2. 初始化计数器count 用于记录匹配规则的物品数量,初始值为0。

  3. 获取索引:根据 ruleKey 获取对应的索引。

  4. 遍历物品数组:使用 for 循环遍历 items 数组中的每个物品。

  5. 检查匹配:对于每个物品,检查其相应属性是否与 ruleValue 匹配。

  6. 更新计数:如果物品匹配规则,增加 count 的值。

  7. 返回结果:遍历完成后,返回 count,即匹配规则的物品数量。

标签:检索,count,匹配,1773,索引,数组,规则,物品,LeetCode
From: https://blog.csdn.net/makeke123456/article/details/145175056

相关文章

  • LeetCode字符串
    LeetCode字符串LeetCode字符串刷题记录基础知识字符串和数组很相似每个元素的数据类型相同都可以通过下标索引访问字符串比大小从第0个位置开始,依次比较对应位置上的字符编码大小defcompare(str1,str2):i=0j=0whilei<len(str1)andj<len(s......
  • LeetCode题练习与总结:省份数量--547
    一、题目描述有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 nxn 的矩阵 isConnected ,其......
  • LeetCode题练习与总结:游戏玩法分析 Ⅳ -- 550
    一、题目描述SQLSchema> PandasSchema> Table: Activity+--------------+---------+|ColumnName|Type|+--------------+---------+|player_id|int||device_id|int||event_date|date||games_played|int|+----......
  • LeetCode题练习与总结:移除盒子--546
    一、题目描述给出一些不同颜色的盒子 boxes ,盒子的颜色由不同的正数表示。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >=1),这样一轮之后你将得到 k*k 个积分。返回 你能获得的最大积分和 。示例1:......
  • LeetCode:21.合并两个有序链表
    LeetCode:21.合并两个有序链表解题思路与归并排序中的合并两个有序数组很相似。将数组替换成链表就能解此题。解题步骤新建一个新链表,作为返回结果。用指针遍历两个有序链表,并比较两个链表的当前节点,较小者先接入新链表,并将指针后移一步。链表遍历结束,返回新链表。/***Defini......
  • 210. 课程表 II【 力扣(LeetCode) 】
    文章目录零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码零、原题链接210.课程表II一、题目描述  现在你总共有numCourses门课需要选,记为0到numCourses-1。给你一个数组prerequisites,其中prerequisites[i]=[ai,bi],表示在选修课......
  • X00456-基于金融知识图谱的实体检索系统完整代码文件
    本系统整合了Yago和Dbpedia公开数据集,基于纳斯达克500强公司数据进行抽取,构建了金融领域的知识图谱。系统采用Vue、Django和MySQL技术栈,提供交互式可视化界面,支持实体检索、实体信息查看、相关实体推荐及实体相关新闻等功能。通过这些功能,用户能够更加直观地探索知识图谱,并迅速获......
  • 【ACM独立出版,南通大学主办-往届均已检索】第二届智慧教育与计算机技术国际学术会议(IE
      【会议亮点】ACM独立出版,EI、SCOPUS双检索首届ACM独立出版,会后4个月内完成EI、SCOPUS双检索教育与人工智能、计算机等研究方向相结合的主题均可投递由南通大学主办,教育科学学院参与会议,并做大力支持支持线上参会,线上做口头报告,线上做海报展示大会名称:第二届智慧教育......
  • LeetCode 2956. 找到两个数组中的公共元素
    在本篇文章中,我们将探讨如何求解LeetCode上的2956.找到两个数组中的公共元素问题。这个问题要求我们找到两个数组中公共元素的出现次数,并分别计算这些公共元素在各自数组中的出现次问题描述 算法分析为了解决这个问题,我们可以采用以下步骤:排序:首先对两个数组进行排......
  • 【Leetcode 每日一题】3066. 超过阈值的最少操作数 II
    问题背景给你一个下标从000开始的整数数组num......