这道题的数据量并不大,双重for肯定是出来了的,但是我不想写双重for,于是用了其他方法
我的办法就是数组标记,题目说了J中的不会重复,利用ASCII将J中的宝石放入一个标记数组中,遍历S的时候
如果标记数组对应的值不为0,则说明是宝石,计数++;
class Solution {
public:
int numJewelsInStones(string J, string S) {
int Jflag[200];
fill( Jflag , Jflag + 200 , 0 );
for( int i = 0 ; i < J.length() ; i++ ){
int num = (int)J[i];
Jflag[num]++;
}
int ans = 0;
for( int i = 0 ; i < S.length() ; i++ ){
int num = (int)S[i];
if( Jflag[num] != 0 ) ans++;
}
return ans;
}
};