假设我们有一个数组 nums,其中每个 nums[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。
我们必须找到我们可以找到的匹配数量。
所以,如果输入是这样的
Bike | 蓝色的 | ElecB |
车 | 银 | Sumo |
自行车 | 蓝色的 | 电视 |
而 ruleKey = "color", ruleValue = "blue", 那么输出将是 2 因为有两个匹配 [["Bike","blue","ElecB"] 和 ["Bike","blue","TVS "]]。
为了解决这个问题,我们将按照以下步骤操作 -
计数:= 0
如果 ruleKey 与“type”相同,则
如果 items[i, 0] 与 ruleValue 相同,则
计数 := 计数 + 1
对于 i 在 0 到项目大小的范围内,请执行
如果 ruleKey 与 "color" 相同,则
如果 items[i, 1] 与 ruleValue 相同,则
计数 := 计数 + 1
对于 i 在 0 到项目大小的范围内,请执行
如果 ruleKey 与“name”相同,则
如果 items[i, 2] 与 ruleValue 相同,则
计数 := 计数 + 1
对于 i 在 0 到项目大小的范围内,请执行
返回计数
让我们看看以下实现以获得更好的理解 -
def solve(items, ruleKey, ruleValue): count = 0 if ruleKey == "type": for i in range(len(items)): if items[i][0] == ruleValue: count += 1 if ruleKey == "color": for i in range(len(items)): if items[i][1] == ruleValue: count += 1 if ruleKey == "name": for i in range(len(items)): if items[i][2] == ruleValue: count += 1 return count items = [["Bike","blue","ElecB"],["Car","silver","Sumo"],["Bike","blue","TVS"]] ruleKey = "color" ruleValue = "blue" print(solve(items, ruleKey, ruleValue))
[["Bike","blue","ElecB"],["Car","silver","Sumo"],["Bike","blue","TVS"]],"color", "blue"输出结果
2