牛客网在线判题系统(输入输出问题)
之前一直用LeetCode刷题,但是线上笔试基本都是牛客网的OJ系统对输入输出有一些要求,第一次考试没有提前做功课,算法题在case输入这里坑了很多时间,题目做出来但是case通过率0%,记个笔记。
1.第一类:牛客网里的剑指offer的题和leetcode上一样,函数定义已经写好了,只需要完成函数,返回相关的值就可以,不需要处理任何输入输出,不要在函数里输出任何东西。
2.第二类:对于传统ACM的OJ模式题目,程序需要stdin(标准输入)读取输入,然后stdout(标准输出)来打印结果,OJ一次处理多个case,所以代码需要循环处理,一般通过while循环来出来多个case。
举例:
c++语言:
#include <iostream> using namespace std; int main() { int a,b; while(cin >> a >> b)//注意while处理多个case cout << a+b << endl; }
Java语言:
注意类名必须为Main, 不要有任何package xxx信息,也要注意注意hasNext和hasNextLine的区别,
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); } } }
Python3语言:
import sys for line in sys.stdin: a = line.split() print(int(a[0]) + int(a[1]))
注:判题系统状态含义
等待评测: 评测系统还没有评测到这个提交,请稍候 正在评测: 评测系统正在评测,稍候会有结果 编译错误:您提交的代码无法完成编译,点击“编译错误”可以看到编译器输出的错误信息 答案正确: 恭喜!您通过了这道题 运行错误: 您提交的程序在运行时发生错误,可能是空指针 部分正确: 您的代码只通过了部分测试点,继续努力! 格式错误: 您的程序输出的格式不符合要求(比如空格和换行与要求不一致) 答案错误: 您的程序未能对评测系统的数据返回正确的结果 运行超时: 您的程序未能在规定时间内运行结束 内存超限: 您的程序使用了超过限制的内存 异常退出: 您的程序运行时发生了错误 返回非零: 您的程序结束时返回值非 0,如果使用 C 或 C++ 语言要保证 int main 函数最终 return 0 浮点错误: 您的程序运行时发生浮点错误,比如遇到了除以 0 的情况 段错误 : 您的程序发生段错误,可能是数组越界,堆栈溢出(比如,递归调用层数太多)等情况引起 多种错误: 您的程序对不同的测试点出现不同的错误 内部错误: 请仔细检查你的代码是否有未考虑到的异常情况,例如非法调用、代码不符合规范等。
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
分页助手PageHelper的使用