本文主要是介绍Lettcode第二天之石头于宝石(771),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
哈希集合
public static int numJewelsInStones(String J, String S) {int lenj=J.length();int sum=0;Set<Character> hashMap=new HashSet<>(lenj-1);for (int x=0;x<lenj;x++){hashMap.add(J.charAt(x));}for (int i=0;i<S.length();i++){if (hashMap.contains(S.charAt(i))){sum++;continue;}}return sum;}
暴力求解
public static int numJewelsInStones(String J, String S) {int sum=0;for (int i=0;i<S.length();i++){for (int j=0;j<J.length();j++){if (S.charAt(i)==J.charAt(j)){sum++;break;}}}return sum;}
正则表达式
public static int numJewelsInStones(String J, String S) {return S.replaceAll("[^"+J+"]","").length();}
集合set
public static int numJewelsInStones(String J, String S) {int sum=0;Set<Character> set =new HashSet();char[] charj=J.toCharArray();char[] chars=S.toCharArray();for (char j:charj)set.add(j);for (char s:chars)if (set.contains(s))sum++;return sum;}
学以致用
- replaceAll(regex,replacement)
S.replaceAll("[^"+J+"]","")//代表将J字符串全部替换为空字符串
- contains()判断字符串中是否有子字符串,返回值为boolean类型
- HashMap使用put,HashSet使用add录入数据
- HashMap使用containsKey,HashSet使用contain查询是否存在
这篇关于Lettcode第二天之石头于宝石(771)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!