LeetCode 0771 Jewels and Stones【寶石與石頭,哈希】

題目鏈接 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 中的每個字符爲自己擁有的石頭,想知道自己擁有多少寶石

區分大小寫

思路1

  • 使用一個哈希表記錄所有的寶石
  • 遍歷 S 中的所有石頭,使用 ans 記錄寶石的數量

代碼1

class Solution {
public:
    int numJewelsInStones(string J, string S) {
        bool ch[256] = {true};
        for(const auto &it : J)
            ch[it] = true;
        int ans = 0;
        for(const auto &it : S)
            if(ch[it])
                ans++;
        return ans;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章