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 题目汇总

  • 相关阅读:
    [LeetCode] Kth Smallest Element in a BST
    Dojo入门篇
    不要小看了get 与set
    怎样安装Windows7操作系统
    MFC Wizard创建的空应用程序中各个文件内容的解析
    hadoop hdfs空间满后重新启动不了
    树形结构——基本原理
    R语言pdf输出中文乱码处理
    Javascript基本概念梳理
    Java动态代理
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9834862.html
Copyright © 2011-2022 走看看