您的位置:首页 > 其它

771.宝石与石头

2019-02-13 19:42 190 查看

leetcode菜鸟历练之路

全部使用C语言,有空补上C++代码
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。

示例 1:

输入: J = “aA”, S = “aAAbbbb”
输出: 3
示例 2:

输入: J = “z”, S = “ZZ”
输出: 0
注意:

S 和 J 最多含有50个字母。
J 中的字符不重复。

一、C解法
/*   */
#define N 120
int numJewelsInStones(char* J, char* S) {
int  a = 0;
char ch
 = {0};

/*遍历J数组,将新数组ch下标设置为J数组中的值。在遍历S数组时,通过寻找下标即可找到S中与J相	 同的值*/
for (char* p = J; *p; ++p)
ch[*p] =  1;
for (char* p = S; *p; ++p)
a+=ch[*p];

return a;
/*时间复杂度:O(J+S)*/
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: