2017-04-20 2 views
3

私が知っている唯一の言語は、Javascriptですが、javascriptのオプションを選択した場合、入力を取得する方法と、いくつかの問題の両方のサイトで出力を印刷する方法を理解できない場合は、HackerrankのコードがこのHackerrankとHackerearthでJavascriptを使用するには?

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); 
}); 

と初期のコードは、この

function main(input) { 
     //Enter your code here 
     process.stdout.write("Hello World!"); 
    } 

    process.stdin.resume(); 
    process.stdin.setEncoding("utf-8"); 
    var stdin_input = ""; 

    process.stdin.on("data", function (input) { 
     stdin_input += input; 
    }); 

    process.stdin.on("end", function() { 
     main(stdin_input); 
    }); 
のようなhackerearth初期のコードを見にこの

process.stdin.resume(); 
process.stdin.setEncoding('ascii'); 

var input_stdin = ""; 
var input_stdin_array = ""; 
var input_currentline = 0; 

process.stdin.on('data', function (data) { 
input_stdin += data; 
}); 

process.stdin.on('end', function() { 
    input_stdin_array = input_stdin.split("\n"); 
main();  
}); 

function readLine() { 
    return input_stdin_array[input_currentline++]; 
} 

/////////////// ignore above this line //////////////////// 

function main() { 
    var n = parseInt(readLine()); 
} 

一方のように見えるいくつかの問題のために同じhackerrankで

誰かが私にプログラムの例を教えてくれれば、それらのサイトやjavascriptを使ってそれらのサイトの解決されたプログラムの入力と出力を得る方法も私は推測できます。

+0

これらのサイトのドキュメントをお読みください。ちょっとした考え。これを 'node.js'でタグ付けしたので、そこにあるドキュメンテーションも読んでみてください。言ってるだけ。 – gforce301

+0

@ kannucodert14私が提供した解決策が助けになったら私を更新しますか?それは確かにhackerearthに役立つでしょうし、hackerrankはそれほど違いはありませんか? –

+0

明日@PankajShukla私はあなたを確認し、更新します。ありがとう – Kannan

答えて

5

のはHackerEarthから簡単な例を見てみましょう: https://www.hackerearth.com/practice/basic-programming/input-output/basics-of-input-output/practice-problems/algorithm/find-factorial/

ソリューションを提供するには、あなたがこれを実行する必要があります。

function main(input) { 
    //Enter your code here 
    var num = parseInt(input, 10);//This line expects input to be a string so convert to an int as per problem 
    var res=1; 
    for(var i=num;i>1;i--) { 
     res *= i; 
    } 
    process.stdout.write(res);//This is how you write output. 
} 

EDIT:ここ

は、あなたができる方法ですそれはハッカーの中で:

function main() { 
    var n = parseInt(readLine()); 
    var strN = n.toString();//<-- Convert int n to string 
    for(var i=1;i<=10;i++) { 
     process.stdout.write(strN+" x "+i+" = "+n*i);//<-- formatting the 
                //question requires 
     process.stdout.write("\n");//<-- newline 
    } 
} 

違いは、HackerRankでは、出力を自分で文字列に変換する必要があるようです。 お手伝い願います!

EDIT2:入力が複数行であるので、まずあなたが分割する必要があること

function main(input) { 
    //Enter your code here 
    var data = input.split('\n'); 
    var firstLine = data[0].split(' '); 
    var len = firstLine[0]; 
    //process.stdout.write('length:'+len); 
    var toFind = firstLine[1]; 
    //process.stdout.write('toFind:'+toFind); 
    //process.stdout.write('\n'); 
    var arr = data[1].split(' '); 
    //process.stdout.write(arr); 
    for(var i=len-1;i>=0;i--) { 
     if(arr[i] == toFind){ 
      process.stdout.write(i+1); 
      return; 
     } 
    } 
    process.stdout.write(-1); 
} 

は注意:あなたがこれを行うことができ

5 1 
1 2 3 4 1 

:のように複数行入力の場合

var data = input.split('\n');を実行して行に挿入します。 各分割は、間にスペースを入れた文字列を提供します。したがって、個々の文字を取得するには、もう一度分割する必要がありますが、今度はvar firstLine = data[0].split(' ');のようなスペースで分割しなければなりません。 すべての入力が完了したら、独自のアルゴリズムを書くことになります。 エディタ自体でデバッグする方法を知っているので、私もコメントを残しています。

ところで、このソリューションも機能し、受け入れられた解決策です。

これも役立ちます。

+0

こんにちはBroはhackerrankでは完全に問題なく動作しますが、このprocess.stdoutのように印刷しようとすると、ここでは問題の例としてこの問題が発生しません。https://www.hackerrank.com/challenges/30-loopsここにここにあります。書き込み(n);それは出力を表示しませんが、write process.stdout.write( "hi" + n);それはhi2を出力します。私はres = n.toString()に変換されたので、出力が文字列だけになると思っていました。ありがとう – Kannan

+0

あなたがリンクに与えた問題の上記ソリューションは、HackerRankでも同様に動作しています。試しましたか? –

+0

はい、本当にそれはHackerRankの他の問題も解決していますが、Hackerearthには2つ以上の入力がある場合、どのようにして取得できますか?https://www.hackerearth.com/practice/algorithms/searching/linear-検索/チュートリアル/この問題がCであれば、私はscanf( "%d"、N)とscanf( "%d"、M)を入力してJSを入力しますその問題 – Kannan

関連する問題