Skip to content

Commit 6bf710a

Browse files
authored
feat: add js solution to lcci problem: No.16.15.Master Mind (doocs#391)
1 parent 27c2658 commit 6bf710a

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed

lcci/16.15.Master Mind/README.md

+26
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,32 @@
4141

4242
```
4343

44+
### **JavaScript**
45+
46+
```js
47+
/**
48+
* @param {string} solution
49+
* @param {string} guess
50+
* @return {number[]}
51+
*/
52+
var masterMind = function(solution, guess) {
53+
let counts1 = {R: 0, G: 0, B: 0, Y: 0};
54+
let counts2 = {R: 0, G: 0, B: 0, Y: 0};
55+
let res1 = 0;
56+
for (let i = 0; i < solution.length; i++) {
57+
let s1 = solution.charAt(i), s2 = guess.charAt(i);
58+
if (s1 == s2) {
59+
res1++;
60+
} else {
61+
counts1[s1] += 1;
62+
counts2[s2] += 1;
63+
}
64+
}
65+
let res2 = ['R', 'G', 'B', 'Y'].reduce((a, c) => a + Math.min(counts1[c], counts2[c]), 0);
66+
return [res1, res2];
67+
};
68+
```
69+
4470
### **...**
4571

4672
```

lcci/16.15.Master Mind/README_EN.md

+26
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,32 @@
5151

5252
```
5353

54+
### **JavaScript**
55+
56+
```js
57+
/**
58+
* @param {string} solution
59+
* @param {string} guess
60+
* @return {number[]}
61+
*/
62+
var masterMind = function(solution, guess) {
63+
let counts1 = {R: 0, G: 0, B: 0, Y: 0};
64+
let counts2 = {R: 0, G: 0, B: 0, Y: 0};
65+
let res1 = 0;
66+
for (let i = 0; i < solution.length; i++) {
67+
let s1 = solution.charAt(i), s2 = guess.charAt(i);
68+
if (s1 == s2) {
69+
res1++;
70+
} else {
71+
counts1[s1] += 1;
72+
counts2[s2] += 1;
73+
}
74+
}
75+
let res2 = ['R', 'G', 'B', 'Y'].reduce((a, c) => a + Math.min(counts1[c], counts2[c]), 0);
76+
return [res1, res2];
77+
};
78+
```
79+
5480
### **...**
5581

5682
```

lcci/16.15.Master Mind/Solution.js

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* @param {string} solution
3+
* @param {string} guess
4+
* @return {number[]}
5+
*/
6+
var masterMind = function(solution, guess) {
7+
let counts1 = {R: 0, G: 0, B: 0, Y: 0};
8+
let counts2 = {R: 0, G: 0, B: 0, Y: 0};
9+
let res1 = 0;
10+
for (let i = 0; i < solution.length; i++) {
11+
let s1 = solution.charAt(i), s2 = guess.charAt(i);
12+
if (s1 == s2) {
13+
res1++;
14+
} else {
15+
counts1[s1] += 1;
16+
counts2[s2] += 1;
17+
}
18+
}
19+
let res2 = ['R', 'G', 'B', 'Y'].reduce((a, c) => a + Math.min(counts1[c], counts2[c]), 0);
20+
return [res1, res2];
21+
};

0 commit comments

Comments
 (0)