Jewels and Stones

2021年11月21日 阅读数:8
这篇文章主要向大家介绍Jewels and Stones,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

题目以下java

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".数组

一言以蔽之,但愿从S中找出包含的J中的字符的种类数。ide

直接的方式方法应该是hash映射法。spa

算法思想code

0. 设定参数cnt用于记录S中存在的宝石数目blog

1. 将J中的字符映射为hash数组(字母有ascii的话需设定hash数组长度256)(J中存在的字符,hash数组中对应的ascii码编号位置处设为1)ci

2.读取S中的字符c,若是hash[c] = 1,则cnt++;string

3.返回cnthash

代码实现

1. java代码

 1 class Solution {
 2     public int numJewelsInStones(String J, String S) {
 3         int[] hash = new int[256];
 4         int ans = 0;
 5         for(int i=0; i<J.length(); i++)
 6         {
 7             hash[J.charAt(i)] = 1;
 8         }
 9         for(int i=0; i<S.length(); i++)
10         {
11             if(hash[S.charAt(i)] == 1) ans++;
12         }
13         return ans;
14     }
15 }