class Solution {
public:
int numJewelsInStones(string J, string S) {
int num = 0;
for(int i = 0; i<J.length();i++)
{
for(int j = 0; j<S.length();j++)
{
if(S[j]==J[i]) num++;
}
}
return num;
}
};
这种方法很直观很简单,3ms但是循环耗时间
class Solution {
public:
int numJewelsInStones(string J, string S) {
int ret =0;
set<char>s;
for(int i = 0;i<J.length();i++)
s.insert(J[i]);
for(int i = 0;i<S.length();i++)
if(s.count(S[i])) //返回某个值元素的个数,不为零说明
ret++;
return ret;
}
};
这种方法采用集合set,c++ stl库中自带的一个容器,运行0ms
特点:1、set中的元素都是排好序的 2、set集合中没有重复的元素