私はハッカーのランクから簡単な問題があります。jsのコンソールからの読み書き
N個の文字列があります。各文字列の長さは20文字以下です。 Qクエリもあります。各クエリについて、文字列が与えられています。以前にこの文字列が何回発生したかを調べる必要があります。最初の行には文字列の数が入っています。次のN行にはそれぞれ文字列が含まれます。 N + 2行目には、クエリ数が含まれています。 次のQ行にはそれぞれクエリ文字列が含まれています。
サンプル入力
4
aba
baba
aba
xzxb
3
aba
xzxb
ab
サンプル出力
2
1
0
ここで提供されたコード、
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);
});
問題に対する解決策は単純ではあります。 ハッシュマップを初期化します。出現回数に対してハッシュマップのN個の文字列に値を入力します。
var map = {};
if(!map[input])map[input]++;
else map[input] = 1;
次に、それぞれのクエリに対してそれぞれのキーでgetを返します。
問題は私がjavascriptには新しく、ノードについての手掛かりがありません。誰かが私にコードを理解させ、それぞれのデータ構造をインスタンス化する必要があるスコープを理解する手助けをすることができますか?
うん、それはノードです。 –
私はあなたのifステートメントを交換する必要があると思う、 'if(!map [input]){map [input] = 1; } else {map [input] ++; } ' – jcubic