zoukankan      html  css  js  c++  java
  • [LeetCode] 771. Jewels and Stones 珠宝和石头

    You're given strings J representing the types of stones that are jewels, and S representing 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.

    给两个字符串,珠宝字符串J和石头字符串S,其中J中的每个字符都是珠宝,S中的每个字符都是石头,区分字母的大小写,问我们S中有多少个珠宝。

    Java:

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

    Java:

    public int numJewelsInStones(String J, String S) {
            int res = 0;
            Set setJ = new HashSet();
            for (char j: J.toCharArray()) setJ.add(j);
            for (char s: S.toCharArray()) if (setJ.contains(s)) res++;
            return res;
        } 

    Python:

    def numJewelsInStones(self, J, S):
        return sum(map(J.count, S))
    

    Python:

    def numJewelsInStones(self, J, S):
        return sum(map(S.count, J)) 
    

    Python:  

    def numJewelsInStones(self, J, S):
        return sum(s in J for s in S) 

    Python:

    def numJewelsInStones(self, J, S):
            setJ = set(J)
            return sum(s in setJ for s in S)  

    Python:

    # Time:  O(m + n)
    # Space: O(n)
    class Solution(object):
        def numJewelsInStones(self, J, S):
            """
            :type J: str
            :type S: str
            :rtype: int
            """
            lookup = set(J)
            return sum(s in lookup for s in S)  

    Python: wo

    class Solution(object):
        def numJewelsInStones(self, J, S):
            """
            :type J: str
            :type S: str
            :rtype: int
            """
            res = 0
            for i in S:
                if i in J:
                    res += 1
                    
            return res 
    

    C++:

    int numJewelsInStones(string J, string S) {
            int res = 0;
            unordered_set<char> setJ(J.begin(), J.end());
            for (char s : S) if (setJ.count(s)) res++;
            return res;
        }
    

      

      

    All LeetCode Questions List 题目汇总

  • 相关阅读:
    日报 18/05/29
    jsvascript === 和==的区别
    分享个数组
    ROC曲线绘制
    DLL中传递STL参数(如Vector或者list等)会遇到的问题[转载]
    利用JAX-WS 开发web服务
    菜鸟的成长之路——在清华特奖经验分享交流会上的演讲
    一段小代码的思考
    关于Vector中的元素中含有指针成员的情况
    关于职业规划——好帖【转载】
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9834862.html
Copyright © 2011-2022 走看看