Ce înseamnă HackerRank prin, ' Citiți intrările de la STDIN. Tipăriți ieșirea în STDOUT '? Ce sunt STDIN și STDOUT și cum citesc și scriu în Java?


Cel mai bun răspuns

În java, puteți utiliza clasa Scanner pentru a citi intrarea și System.out pentru a imprima ieșirea.

Scanner scanner = new Scanner(System.in);

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

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

Cu toate acestea, veți obține uneori limita de timp depășită (TLE) datorită performanței Scanner. Puteți utiliza BufferedReader în schimb.

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

}

}

Răspuns

Permiteți-mi să încerc să explic cu Problema Angry Professor din HackerRank.

După codul citește din System.in și imprimă rezultatul, restul se explică de la sine:

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

}

}

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *