文章目录
  1. 1. 文档更新说明
  2. 2. 前言
  3. 3. 771. Jewels and Stones
    1. 3.1. Example1
    2. 3.2. Example2
    3. 3.3. Note
    4. 3.4. Solution

文档更新说明

  • 最后更新 2018年03月07日
  • 首次更新 2018年03月07日

前言

  使用Swift语言完成LetCode题目,简单题.

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”.

Example1

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

Example2

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

class Solution {
func numJewelsInStones(_ J: String, _ S: String) -> Int {
//创建一个字典, 把石头宝石的类型作为key
var allStoneDic: [Character : Int] = [Character : Int]()
//得到S字符串中各种类型的石头宝石的数量
for c in S {
if let num = allStoneDic[c] {
allStoneDic[c] = num + 1
}else {
allStoneDic[c] = 1
}
}
//使用J里面所有宝石类型作为key,去访问字典
var jewelsAmount = 0
for c in J {
if let num = allStoneDic[c] {
jewelsAmount += num
}
}
//得到对应宝石的数量
return jewelsAmount
}
}
文章目录
  1. 1. 文档更新说明
  2. 2. 前言
  3. 3. 771. Jewels and Stones
    1. 3.1. Example1
    2. 3.2. Example2
    3. 3.3. Note
    4. 3.4. Solution