Was bedeutet HackerRank unter ' Eingabe von STDIN lesen. Druckausgabe an STDOUT '? Was ist STDIN und STDOUT und wie lese und schreibe ich in Java darauf?


Beste Antwort

In Java können Sie die Klasse Scanner zum Lesen der Eingabe und System.out zum Drucken der Ausgabe verwenden.

Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt(); // read an integer from input stream.

System.out.println(n) // print n

Manchmal wird jedoch das Zeitlimit überschritten (TLE). wegen der Leistung des Scanners. Sie können stattdessen BufferedReader verwenden.

class InputReader {

public BufferedReader reader;

public StringTokenizer tokenizer;

public InputReader(InputStream stream) {

reader = new BufferedReader(new InputStreamReader(stream), 32768);

tokenizer = null;

tokenizer = null;

}

public String next() {

while (tokenizer == null || !tokenizer.hasMoreTokens()) {

try {

tokenizer = new StringTokenizer(reader.readLine());

} catch (IOException e) {

throw new RuntimeException(e);

}

}

return tokenizer.nextToken();

}

public int nextInt() {

return Integer.parseInt(next());

}

public long nextLong() {

return Long.parseLong(next());

}

}

Antwort

Lassen Sie mich versuchen, mit Angry Professor Problem von HackerRank.

Nach dem Lesen von Code aus System.in und dem Drucken der Ausgabe ist der Rest selbsterklärend:

import java.io.*;

import java.util.*;

public class Solution {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int t = in.nextInt();

for (int i = 0; i < t; i++) {

int nstudent = in.nextInt();

int threshold = in.nextInt();

int[] arrival = new int[nstudent];

for (int j = 0; j < nstudent; j++) {

arrival[j] = in.nextInt();

}

algo(arrival, threshold);

}

}

public static void algo(int[] arrival, int threshold){

//your implementation

}

}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.