牛客OJ Java范例

跟風遠走 提交于 2020-02-26 10:42:59

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

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!