Skip to content

Commit e95e300

Browse files
committed
feat: add solutions to lc problem: No.0771
No.0771.Jewels and Stones
1 parent 28f3d2a commit e95e300

File tree

5 files changed

+126
-0
lines changed

5 files changed

+126
-0
lines changed

solution/0700-0799/0771.Jewels and Stones/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,53 @@ var numJewelsInStones = function (jewels, stones) {
123123
};
124124
```
125125

126+
### **TypeScript**
127+
128+
```ts
129+
function numJewelsInStones(jewels: string, stones: string): number {
130+
const set = new Set([...jewels]);
131+
let ans = 0;
132+
for (const c of stones) {
133+
set.has(c) && ans++;
134+
}
135+
return ans;
136+
}
137+
```
138+
139+
### **Rust**
140+
141+
```rust
142+
use std::collections::HashSet;
143+
impl Solution {
144+
pub fn num_jewels_in_stones(jewels: String, stones: String) -> i32 {
145+
let mut set = jewels.as_bytes().iter().collect::<HashSet<&u8>>();
146+
let mut ans = 0;
147+
for c in stones.as_bytes() {
148+
if set.contains(c) {
149+
ans += 1;
150+
}
151+
}
152+
ans
153+
}
154+
}
155+
```
156+
157+
### **C**
158+
159+
```c
160+
int numJewelsInStones(char *jewels, char *stones) {
161+
int set[128] = {0};
162+
for (int i = 0; jewels[i]; i++) {
163+
set[jewels[i]] = 1;
164+
}
165+
int ans = 0;
166+
for (int i = 0; stones[i]; i++) {
167+
set[stones[i]] && ans++;
168+
}
169+
return ans;
170+
}
171+
```
172+
126173
### **...**
127174
128175
```

solution/0700-0799/0771.Jewels and Stones/README_EN.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,53 @@ var numJewelsInStones = function (jewels, stones) {
100100
};
101101
```
102102

103+
### **TypeScript**
104+
105+
```ts
106+
function numJewelsInStones(jewels: string, stones: string): number {
107+
const set = new Set([...jewels]);
108+
let ans = 0;
109+
for (const c of stones) {
110+
set.has(c) && ans++;
111+
}
112+
return ans;
113+
}
114+
```
115+
116+
### **Rust**
117+
118+
```rust
119+
use std::collections::HashSet;
120+
impl Solution {
121+
pub fn num_jewels_in_stones(jewels: String, stones: String) -> i32 {
122+
let mut set = jewels.as_bytes().iter().collect::<HashSet<&u8>>();
123+
let mut ans = 0;
124+
for c in stones.as_bytes() {
125+
if set.contains(c) {
126+
ans += 1;
127+
}
128+
}
129+
ans
130+
}
131+
}
132+
```
133+
134+
### **C**
135+
136+
```c
137+
int numJewelsInStones(char *jewels, char *stones) {
138+
int set[128] = {0};
139+
for (int i = 0; jewels[i]; i++) {
140+
set[jewels[i]] = 1;
141+
}
142+
int ans = 0;
143+
for (int i = 0; stones[i]; i++) {
144+
set[stones[i]] && ans++;
145+
}
146+
return ans;
147+
}
148+
```
149+
103150
### **...**
104151
105152
```
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
int numJewelsInStones(char *jewels, char *stones) {
2+
int set[128] = {0};
3+
for (int i = 0; jewels[i]; i++) {
4+
set[jewels[i]] = 1;
5+
}
6+
int ans = 0;
7+
for (int i = 0; stones[i]; i++) {
8+
set[stones[i]] && ans++;
9+
}
10+
return ans;
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use std::collections::HashSet;
2+
impl Solution {
3+
pub fn num_jewels_in_stones(jewels: String, stones: String) -> i32 {
4+
let mut set = jewels.as_bytes().iter().collect::<HashSet<&u8>>();
5+
let mut ans = 0;
6+
for c in stones.as_bytes() {
7+
if set.contains(c) {
8+
ans += 1;
9+
}
10+
}
11+
ans
12+
}
13+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function numJewelsInStones(jewels: string, stones: string): number {
2+
const set = new Set([...jewels]);
3+
let ans = 0;
4+
for (const c of stones) {
5+
set.has(c) && ans++;
6+
}
7+
return ans;
8+
}

0 commit comments

Comments
 (0)