正能量网站推荐,咸阳seo公司,wordpress媒体库分离,旅游网站排名全球文章目录1. 题目信息2. 解题1. 题目信息
给定字符串J 代表石头中宝石的类型#xff0c;和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型#xff0c;你想知道你拥有的石头中有多少是宝石。
J 中的字母不重复#xff0c;J 和 S中的所有字符都是字母…
文章目录1. 题目信息2. 解题1. 题目信息
给定字符串J 代表石头中宝石的类型和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型你想知道你拥有的石头中有多少是宝石。
J 中的字母不重复J 和 S中的所有字符都是字母。字母区分大小写因此a和A是不同类型的石头。
示例 1:输入: J aA, S aAAbbbb
输出: 3
示例 2:输入: J z, S ZZ
输出: 0
注意:S 和 J 最多含有50个字母。J 中的字符不重复。来源力扣LeetCode 链接https://leetcode-cn.com/problems/jewels-and-stones 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
先把宝石类型插入hashsetc中就是unordered_set在hashset中查找并计数
class Solution {
public:int numJewelsInStones(string J, string S) {unordered_setchar s(J.begin(), J.end());int ans 0;for(char ch : S){if(s.count(ch))ans;}return ans;}
};自己用数组哈希
class Solution {
public:int numJewelsInStones(string J, string S) {int amount[52] { 0 };int ans 0;for (int i 0; i S.size(); i){if (S[i] a)amount[S[i]-a];elseamount[S[i]-A26];}for (int i 0; i J.size(); i){if (J[i] a)ans amount[J[i]-a];elseans amount[J[i]-A26];}return ans;}
};