标签:[] bsp 优秀 不同类 get new shm null 题目
题目
给定字符串 J
代表石头中宝石的类型,和字符串 S
代表你拥有的石头。 S
中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J
中的字母不重复,J
和 S
中的所有字符都是字母。字母区分大小写,因此"a"
和"A"
是不同类型的石头。
分析
给两个字符串,对比一个字符串在另一个字符串中的数据中重复的个数
测试数据
输入:J = "aA", S = "aAAbbbb"
输出:3
输入:J = "z", S = "ZZ"
输出:0
参考答案
算法思想:
public int numJewelsInStones(String J, String S) {
int count = 0;
Map<String,Integer> map = new HashMap<String,Integer>();
for (int i =0;i<S.length();i++){
String sv = String.valueOf(S.charAt(i));
if(map.containsKey(sv)){
map.put(sv,map.get(sv)+1);
}else{
map.put(sv,1);
}
}
for (int i =0;i<J.length();i++){
char s =J.charAt(i);
count=map.get(String.valueOf(s))==null?0+count:map.get(String.valueOf(s))+count;
}
return count;
}
5,优秀解法
class Solution {
public int numJewelsInStones(String J, String S) {
int result = 0;
char[] s = new char[128];
for (char c : S.toCharArray()) {
s[c]++;
}
for (char j : J.toCharArray()) {
result += s[j];
}
return result;
}
}
标签:[] bsp 优秀 不同类 get new shm null 题目
原文地址:https://www.cnblogs.com/liutian1912/p/9293866.html