• [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 Sis 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.

    Solution:

    大概翻译下,意思是从一堆石头里捡宝石,输出来宝石的个数。也就是说,只要石头S里有符合的宝石J,那么数量+1。

    这样思路就清晰了,先把石头中各个元素的数量统计到一个map中,然后把宝石的数量加起来就是我们要的结果。代码如下:

    public class Solution {
            public static int numJewelsInStones(String J, String S) {
                HashMap<Character,Integer> map=new HashMap<Character,Integer>();
                int result=0;
                S.chars().forEach(s->{
                	if(stones.containsKey((char)s)) {
                		map.put((char)s, map.get((char)s)+1);
                	}else {
                		map.put((char)s, 1);
                	}
                });
                for(int j=0;j<J.length();j++) {
                	char point=J.charAt(j);
                	if(map.containsKey(point)) {
                		result+=map.get(point);
                	}
                }
                return result;
            }
            public static void main(String[] args) {
        		String J="aA";
        		String S="aAABBBBB";
        		System.out.println(numJewelsInStones(J,S));
        	}
        }
    
  • 相关阅读:
    时间复杂度和空间复杂度的故事
    Go -- 并发编程的两种限速方法
    Go -- type 和断言 interface{}转换
    Go -- 实现二叉搜索树
    Go语言程序的状态监控
    Go -- 中开启gctrace
    Go --- GC优化经验
    Mysql 性能优化20个原则(4)
    Mysql 性能优化20个原则(3)
    查看 activex 组件的方法
  • 原文地址:https://www.cnblogs.com/rever/p/9052253.html
Copyright © 2020-2023  润新知