###与えられた文字列の、奇数番目の文字だけを出力
某プログラミング学習サイトの問題を解いていて、不正解の原因がわからないのでこちらで質問させていただきます。(公開されている解答はpythonのみ)
問題:入力される文字列の奇数番目の文字だけを出力する
例:入力 → aXaXaXaXaX 出力 → aaaaa
※最後に改行の出力指定は無し
発生している問題・エラーメッセージ
// エディタでテストしてもエラーにならず、正しく出力されているように見えます。
該当のソースコード
Nodejs
1process.stdin.resume(); 2process.stdin.setEncoding('utf8'); 3 4const reader = require('readline').createInterface( { 5 input: process.stdin, 6 output: process.stdout 7}); 8 9var lines; 10var result; 11 12reader.on('line', (line) => { 13 lines = line.split(''); 14}); 15reader.on('close', () => { 16 result = lines.filter(item => (lines.indexOf(item) + 1) % 2 === 1); 17 console.log(result.join('')); 18});
試したこと
close
イベントの中を以下のようにfor if
で書いたら正解と判定されました
reader.on('close', () => { for (var i = 0; i < lines.length; i++) { if ((i + 1) % 2 === 1) { process.stdout.write(lines[i]); } } });
補足
初めて質問させて頂きます。
filter
とfor
で出力される内容は同じように見えますが、違いがあれば教えて頂きたいです(改行有無以外で)。
質問の仕方についても不備があればご指摘ください。
よろしくお願い致します。
回答4件
あなたの回答
tips
プレビュー