美文网首页
正则表达式 01

正则表达式 01

作者: 眼若繁星丶 | 来源:发表于2020-10-02 10:18 被阅读0次

    正则表达式 01


    LeetCode 771

    https://leetcode-cn.com/problems/jewels-and-stones/

    HashMap查找

    HashMap用int型数组来表示,先将S字符串的字母依次遍历记录出现次数,接下来再到J字符串里找就行了。

    class Solution {
        public int numJewelsInStones(String J, String S) {
            int[] map = new int[128];
            for (char c : S.toCharArray()) {
                map[c]++;
            }    
            int res = 0;
            for (char c : J.toCharArray()) {
                res += map[c];
            }
            return res;
        }
    }
    

    正则表达式

    将S字符串中不是J的字符全部删掉,相当于将S字符串全部替换为只有J字符串的内容。

    这里用到方法 public String replaceAll(String regex, String replacement)

    其中正则表达式 String regex = "[^" + J + ']'; 用来替换的字符串为空字符串 "";

    替换S后,返回S的长度即可。

    class Solution {
        public int numJewelsInStones(String J, String S) {
            return S.replaceAll("[^" + J + ']', "").length();
        }
    }

    相关文章

      网友评论

          本文标题:正则表达式 01

          本文链接:https://www.haomeiwen.com/subject/lplbuktx.html