正则表达式 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();
}
}
网友评论