Skip to content

Commit 1c6742a

Browse files
author
luzhipeng
committed
feat: 每日一题
1 parent 64c45ad commit 1c6742a

File tree

4 files changed

+84
-61
lines changed

4 files changed

+84
-61
lines changed

Diff for: daily/2019-08-22.md

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# 毎日一题 - 771.jewels-and-stones
2+
3+
## 信息卡片
4+
5+
- 时间:2019-08-22
6+
- 题目链接:https://leetcode.com/problems/jewels-and-stones/
7+
- tag:`String` `Hash Table`
8+
9+
## 题目描述
10+
11+
```
12+
 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。
13+
14+
J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。
15+
16+
示例 1:
17+
18+
输入: J = "aA", S = "aAAbbbb"
19+
输出: 3
20+
示例 2:
21+
22+
输入: J = "z", S = "ZZ"
23+
输出: 0
24+
注意:
25+
26+
S 和 J 最多含有50个字母。
27+
 J 中的字符不重复。
28+
```
29+
30+
## 参考答案
31+
32+
### 正则匹配
33+
34+
时间复杂度比较高,具体复杂度取决于内部回溯的时机。
35+
36+
思路:正则把石头里的宝石 replace 掉,长度相减,就是结果
37+
38+
代码:
39+
40+
```js
41+
let newS = S;
42+
for (let i = 0; i < J.length; i++) {
43+
newS = newS.replace(new RegExp(J[i], "g"), "");
44+
}
45+
return S.length - newS.length;
46+
```
47+
48+
### Hash Table
49+
50+
使用 hash table, 空间换时间的方式。
51+
52+
代码:
53+
54+
```js
55+
const set = {};
56+
let res = 0;
57+
58+
for (let i = 0; i < J.length; i++) {
59+
set[J[i]] = true;
60+
}
61+
62+
for (let i = 0; i < S.length; i++) {
63+
if (set[S[i]]) {
64+
res++;
65+
}
66+
}
67+
return res;
68+
```
69+
70+
### JS 一行代码
71+
72+
```js
73+
return S.split("").filter(c => J.indexOf(c) !== -1).length;
74+
```
75+
76+
## 优秀解答
77+
78+
> 暂缺

Diff for: daily/README.md

+6
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,9 @@ tag:`数据压缩`
179179
tag:`Array` `Matrix`
180180

181181
时间: 2019-07-29
182+
183+
### [771.jewels-and-stones](./2019-08-22.md)
184+
185+
tag:String` `Hash Table`
186+
187+
时间: 2019-08-22

Diff for: todo/candidates/105.construct-binary-tree-from-preorder-and-inorder-traversal.js

-43
This file was deleted.

Diff for: todo/candidates/771.jewels-and-stones.js

-18
This file was deleted.

0 commit comments

Comments
 (0)