牛客题目链接
1. 题目考点
- HashMap 的使用
2. 考点解析
public String[] trieU (String[][] operators) {
HashMap<String, Integer> map = new HashMap<>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < operators.length; i++) {
String[] op = operators[i];
if (op[0].equals("1")) {
if (map.get(op[1]) == null)
map.put(op[1], 1);
else
map.put(op[1], map.get(op[1]) + 1);
}
else if (op[0].equals("2")) {
map.put(op[1], map.get(op[1]) - 1);
if (map.get(op[1]) == 0)
map.remove(op[1]);
}
else if (op[0].equals("3")) {
if (map.containsKey(op[1]))
sb.append("YES").append(",");
else sb.append("NO").append(",");
}
else {
int cnt = 0;
for (String key : map.keySet()) {
if (isPreStr(key, op[1])) cnt += 1;
}
sb.append(cnt).append(",");
}
}
sb.delete(sb.length() - 1, sb.length());
return sb.toString().split(",");
}
public boolean isPreStr(String s1, String s2) {
int i = 0, j = 0;
while (j < s2.length()) {
if (s1.charAt(i) != s2.charAt(j)) return false;
i++;
j++;
}
return true;
}