Count Items Matching a Rule
给一个数组, 里面是颜色,类别和名字, 求找到有多少个满足条件的物品.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Solution { public int countMatches(List<List<String>> items, String ruleKey, String ruleValue) { Map<String, Integer> type = new HashMap<>(); Map<String, Integer> color = new HashMap<>(); Map<String, Integer> name = new HashMap<>(); for(int i = 0; i < items.size(); i++){ List<String> item = items.get(i); type.put(item.get(0), type.getOrDefault(item.get(0), 0) + 1); color.put(item.get(1), color.getOrDefault(item.get(1), 0) + 1); name.put(item.get(2), name.getOrDefault(item.get(2), 0) + 1); } if(ruleKey.equals("type")){ return type.getOrDefault(ruleValue, 0); } else if(ruleKey.equals("color")) { return color.getOrDefault(ruleValue, 0); } else{ return name.getOrDefault(ruleValue, 0); } } } |