18.Jewels and Stones(珠宝和石头)

Level:

  Easy

题目描述:

You're given strings J representing the types of stones that are jewels, and Srepresenting the stones you have. Each character in S is a type of stone you have. You want to know how many of the stones you have are also jewels.

The letters in J are guaranteed distinct, and all characters in J and S are letters. Letters are case sensitive, so "a" is considered a different type of stone from "A".

Example 1:

Input: J = "aA", S = "aAAbbbb"
Output: 3

Example 2:

Input: J = "z", S = "ZZ"
Output: 0

Note:

  • S and J will consist of letters and have length at most 50.
  • The characters in J are distinct.

思路分析:

  将珠宝包含的字符放进map中,然后遍历石头,如果遍历到的字符出现在map中,那么石头中的珠宝数目就加一。

代码:

class Solution {
    public int numJewelsInStones(String J, String S) {
       HashMap<Integer,Character>map=new HashMap<>();
       int res=0;
       if(J==null||S==null)
           return res;
       for(int i=0;i<J.length();i++){
           map.put(i,J.charAt(i));
       }
        for(int j=0;j<S.length();j++){
            if(map.containsValue(S.charAt(j)))
                res++;
        }
        return res;
    }
}
原文地址:https://www.cnblogs.com/yjxyy/p/10720481.html