-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJewelsAndStones.php
48 lines (40 loc) · 1.16 KB
/
JewelsAndStones.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
namespace HashTable\Conclusion\JewelsAndStones;
// 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
//
// J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。
//
// 示例 1:
//
// 输入: J = "aA", S = "aAAbbbb"
// 输出: 3
// 示例 2:
//
// 输入: J = "z", S = "ZZ"
// 输出: 0
// 注意:
//
// S 和 J 最多含有50个字母。
// J 中的字符不重复。
class Solution
{
/**
* @param String $J
* @param String $S
* @return Integer
*/
public function numJewelsInStones($J, $S)
{
$charMap = [];
for ($i = 0, $l = strlen($J); $i < $l; ++ $i) {
$charMap[$J{$i}] = true;
}
$count = 0;
for ($i = 0, $l = strlen($S); $i < $l; ++ $i) {
if (isset($charMap[$S{$i}])) {
++ $count;
}
}
return $count;
}
}