-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharrays-sparse-Array.js
106 lines (85 loc) · 2.23 KB
/
arrays-sparse-Array.js
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
'use strict';
// https://www.hackerrank.com/challenges/sparse-arrays/problem
const fs = require('fs');
const {
mainModule
} = require('process');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
// Complete the matchingStrings function below.
function matchingStrings(strings, queries) {
const total = []
const dict = new Map()
for (let index = 0; index < strings.length; index++) {
const word = strings[index]
let occurs = dict.get(word)
if (occurs) {
occurs = occurs + 1
} else {
occurs = 1
}
dict.set(word, occurs)
}
for (let index = 0; index < queries.length; index++) {
const word = queries[index]
let occurs = dict.get(word) || 0
total.push(occurs)
}
return total
}
function matchingStrings2(strings, queries) {
// console.log(strings, queries)
const str = ',' + strings.join(',') + ','
const total = []
/* const dict = new Map()
for (let index = 0; index < strings.length; index++) {
const word = strings[index]
let occurs = dict.get(word)
if (occurs) {
occurs = occurs + 1
} else {
occurs = 1
}
dict.set(word, occurs)
}*/
console.log('----------', str)
for (let index = 0; index < queries.length; index++) {
const word = queries[index]
let occurs = str.split(`,${word},`).length - 1
console.log(word, occurs)
total.push(occurs)
}
// console.log(dict)
return total
}
function main() {
const stringsCount = parseInt(readLine(), 10);
let strings = [];
for (let i = 0; i < stringsCount; i++) {
const stringsItem = readLine();
strings.push(stringsItem);
}
const queriesCount = parseInt(readLine(), 10);
let queries = [];
for (let i = 0; i < queriesCount; i++) {
const queriesItem = readLine();
queries.push(queriesItem);
}
let res = matchingStrings(strings, queries);
console.log(res)
}
function readLine() {
return inputString[currentLine++];
}
let reader = fs.createReadStream('sparseArray00.txt');
reader.on('data', function (chunk) {
inputString += chunk.toString()
});
reader.on("end", () => {
inputString = inputString.replace(/\s*$/, '')
.split('\n')
.map(str => str.replace(/\s*$/, ''));
main();
});