私はアルゴリズムチャレンジをしようとしています。私は完成した答えの一つからこのコードを見ました。私はJavaScriptの初心者ですので、コードは完全にはわかりません。私は、コードの最初のセクションが入力をかなり受け取り、それをマップにすることを知っています。次に、matchingPair配列とカウンタを初期化します。私はforループセクションでかなり失われています。あまりにも確かに何かmatchingPairs[""+c[i]] = matchingPairs[""+c[i]] || 0;
はありません。私はforループを推測していますが、配列に一致するペアのすべての要素を追加してカウンタに追加しています。このJavascriptコードは何を意味していますか?
function main() {
var n = parseInt(readLine());
c = readLine().split(' ');
c = c.map(Number);
var matchingPairs = {};
var matchingPairCount = 0;
for(var i=0; i< c.length; i++) {
matchingPairs[""+c[i]] = matchingPairs[""+c[i]] || 0;
matchingPairs[""+c[i]] += 1;
if (matchingPairs[""+c[i]] % 2 === 0) {
matchingPairCount += 1;
}
}
console.log(matchingPairCount);
}
try 'var x = {}; x ['a'] = x ['a'] || 0; (x ['a'] || 0)+ 1'のようになります。 –
@ Andy.WあなたはPythonを知っていますか? 'x ['a'] || 0 'は、プロパティ「a」がないとき(またはプロパティが「false」と評価されるとき)に「0」と評価される「defaultdict」のように振る舞う。 '' + x'は 'String(x)'の略です。 –
これは挑戦のウェブサイトですか?もしそうなら、どちらですか? – Ben