Ich habe ein einfaches Problem von Hacker Rank.Lesen und Schreiben von der Konsole in js
Es gibt N Zeichenfolgen. Die Länge jeder Zeichenfolge beträgt nicht mehr als 20 Zeichen. Es gibt auch Q-Abfragen. Für jede Abfrage erhalten Sie eine Zeichenfolge, und Sie müssen herausfinden, wie oft diese Zeichenfolge zuvor aufgetreten ist. Die erste Zeile enthält die Anzahl der Zeichenfolgen. Die nächsten N Zeilen enthalten jeweils eine Zeichenfolge. Die N + 2. Zeile enthält die Anzahl der Abfragen. Die folgenden Q-Zeilen enthalten jeweils eine Abfragezeichenfolge.
Beispieleingabe
4
aba
baba
aba
xzxb
3
aba
xzxb
ab
Beispielausgabe
2
1
0
Hier ist der Code zur Verfügung gestellt,
function processData(input) {
//Enter your code here
}
process.stdin.resume();
process.stdin.setEncoding("ascii");
_input = "";
process.stdin.on("data", function (input) {
_input += input;
});
process.stdin.on("end", function() {
processData(_input);
});
Die Lösung des Problems ist einfach. Initialisiere eine Hashmap. Tragen Sie die Werte in den N Strings in der Hashmap gegen Häufigkeit ein.
var map = {};
if(!map[input])map[input]++;
else map[input] = 1;
Und dann für jede Abfrage geben Sie den entsprechenden Schlüssel zurück.
Das Problem ist, ich bin neu in Javascript und habe keine Ahnung von Knoten. Kann mir jemand helfen, den Code zu verstehen und mir helfen, herauszufinden, in welchen Bereichen die jeweiligen Datenstrukturen instanziiert werden müssen?
Yup, es ist Knoten. –
Ich denke, dass Ihre if-Anweisung getauscht werden muss, "if (! Map [input]) {map [input] = 1; } else {map [Eingabe] ++; } ' – jcubic