每个OJ平台上的题目有简单有容易的,但是一定要预先熟悉OJ平台的规则,因为OJ平台的输入输出等都要遵循一定的规范,否则可能即使代码没问题,也拿不到分数。这几天在牛客网上做了一些题目,为避免浪费时间做了一个模板,可以直接在该模板下进行代码编辑。
0.牛客网机试模板
import java.util.*;
import static java.lang.System.out;
public class Main {
public static void main(String[] argv) {
try (Scanner sc = new Scanner(System.in)) {
sc.useDelimiter("\n");
while (sc.hasNext()) {
String inputStr = sc.nextLine();
List<String> result = Arrays.asList(inputStr.split(" "));
//-------------------------------------------
//-------------------------------------------
out.println(String.join(",", result));
}
}
}
}
1.一定要注意引用的package,否则可能导致无法编译,一般通过import java.util.*;语句全部引入即可
import java.util.*;
public class Main {
public static int getIntFromDouble(double a){
return (int)(a+0.5);
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNextDouble()) {
double a = in.nextDouble();
System.out.println(getIntFromDouble(a));
}
}
}
2.一定要通过while循环处理多个Case,一般OJ都是按case给分的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {//注意while处理多个case
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
3.一定是要写一个以Main命名的完整类,并且在main入口函数中执行逻辑,并通过System.out.println进行输出
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {//注意while处理多个case
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
}
}
}
4.一定要看清要求是否是合法输入,否则一定要有处理极端情况的Corner Case,否则可能会出现异常
5.Scanner读取输入时,默认的分隔符是空格和回车,如果需要读入空格时,可手动指定分隔符
加一行代码 : sc.useDelimiter("\n");
5.将数组或字符串以指定分隔输出可以用String.join()方法,另外需要注意Array和List的互相转化
String[] inputStr = {"1","4","7","10"};
List tempList = Arrays.asList(inputStr);
inputStr = tempList.toArray(new String[tempList.size()]);
System.out.println(String.join("", inputStr));
System.out.println(String.join("-", tempList));
6.如果是排序相关的题目,可以考虑自定义Comparator接口的实现类来处理,使用Collections.sort()或List.sort()进行排序
Lsit = Arrays.asList(new String[]{"123","456","789"});
Collections.sort(tempList, comparator);
public static Comparator getComparator(String order) {
if ("desc".equals(order)) { return new Comparator() {
public int compare(String c1, String c2) {
return Integer.valueOf(c2) - Integer.valueOf(c1); } };
}
return new Comparator() {
public int compare(String c1, String c2) {
return Integer.valueOf(c1) - Integer.valueOf(c2); } };
}
来源:oschina
链接:https://my.oschina.net/fairy1674/blog/3156346