leetcode每日一题(2020.10.02) 771. 宝石与石头

    科技2022-07-10  162

    leetcode每日一题汇总

    771. 宝石与石头

    哈希表(安安)

    class Solution { public int numJewelsInStones(String J, String S) { Map<Character, Integer> map = new HashMap<>(); //遍历字符串,统计每个字符出现的次数 for(int i = 0; i < S.length(); i++){ if(map.containsKey(S.charAt(i))){ map.put(S.charAt(i) , map.get(S.charAt(i))+1); }else{ map.put(S.charAt(i) , 1); } } //累加目标字符的个数 int res = 0; for(int i = 0; i < J.length(); i++){ if(map.containsKey(J.charAt(i))){ res += map.get(J.charAt(i)); } } return res; } }

    正则匹配

    ^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。

    /* ^在中括号里面和外面含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第二位是任一数字的字符串;如果在中括号里面,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去abc之外的其他任一字符。 */ class Solution { public int numJewelsInStones(String J, String S) { return S.replaceAll("[^" + J + "]", "").length(); } }
    Processed: 0.041, SQL: 8