作者:管理員
鏈接:https://www.nowcoder.com/discuss/276
來源:牛客網(wǎng)
1 判題系統(tǒng)的編譯器信息
C/C++:clang++ 3.9 -std=c++14 -O -Wsign-compare -Wc++11-extensions
JAVA:javac 1.8 -encoding=utf-8
Python: python 2.7.3
Python3: python 3.2.3
C#: mcs 4.0.1
Go: go 1.8.3
2. 判題系統(tǒng)的輸入輸出
2.1 對于<劍指Offer>這種有函數(shù)定義的題目,你只要完成函數(shù)购城,返回相關(guān)的值就可以应结,不需要處理任何輸入輸出刨疼,不要在函數(shù)里輸出任何東西。
2.2 對于傳統(tǒng)ACM的OJ模式題目鹅龄,你的程序需要stdin(標(biāo)準(zhǔn)輸入)讀取輸入揩慕,然后stdout(標(biāo)準(zhǔn)輸出)來打印結(jié)果,舉個例子扮休,你可以使用c語言的scanf或者c++的cin來讀取輸入迎卤,然后使用c語言的printf或者c++的cout來輸出結(jié)果。代碼禁止讀取和寫入任何文件玷坠,否則判題系統(tǒng)將會返回運行錯誤蜗搔。OJ一次處理多個case,所以代碼需要循環(huán)處理八堡,一般通過while循環(huán)來出來多個case樟凄。以下是A+B題目的樣例代碼,http://www.nowcoder.com/questionTerminal/dae9959d6df7466d9a1f6d70d6a11417
C 64位輸出請用printf("%lld")
#include <stdio.h>
int
main() {
int
a,b;
while``(scanf(``"%d %d"``,&a, &b) != EOF)``//注意while處理多個case
printf(``"%d\n"``,a+b);
return
0``;
}
|
C++ 64位輸出請用printf("%lld")
#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的區(qū)別不同,詳細見<java的oj輸入注意點>
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);
}
}
}
C#
public
class
Program {
public
static
void
Main() {
string line;
while
((line = System.Console.ReadLine ()) !=
null``) {``//注意while處理多個case
string[] tokens = line.Split();
System.Console.WriteLine(``int``.Parse(tokens[``0``]) +
int``.Parse(tokens[``1``]));
}
}
}
Python
import
sys
try``:
while
True:
line = sys.stdin.readline().strip()
if
line ==
''``:
break
lines = line.split()
print
int``(lines[``0``]) +
int``(lines[``1``])
except:
pass
Python3
import
sys
for
line
in
sys.stdin:
a
=
line.split()
print``(``int``(a[``0``])
+
int``(a[``1``]))
JavaScript(V8)
while``(line=readline()){
var
lines = line.split(``' '``);
var
a = parseInt(lines[0]);
var
b = parseInt(lines[1]);
print(a+b);
}
JavaScript(Node)
<pre>var readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.on('line', function(line){
var tokens = line.split(' ');
console.log(parseInt(tokens[0]) + parseInt(tokens[1]));
});</pre>
Php
<?php
while``(``fscanf``(STDIN,
"%d %d"``,
$a``,
$b``) == 2)
echo
(``$a
+
$b``).``"\n"``;
Go
<pre>package main
import (
"fmt"
)
func main() {
a:=0
b:=0
for {
n, _ := fmt.Scan(&a,&b)
if n == 0 {
break
} else {
fmt.Printf("%d\n",a+b)
}
}
}</pre>
R語言
lines=readLines(``"stdin"``)
for``(l in lines){
if``(l ==
""``){
break``;
}
ll = strsplit(l,
" "``)[[1]]
a=ll[1];
b=ll[2];
cat(as.numeric(a)+as.numeric(b));
cat(``'\n'``);
}
3. 判題系統(tǒng)狀態(tài)
等待評測: 評測系統(tǒng)還沒有評測到這個提交,請稍候
正在評測: 評測系統(tǒng)正在評測溶耘,稍候會有結(jié)果
編譯錯誤:您提交的代碼無法完成編譯二拐,點擊“編譯錯誤”可以看到編譯器輸出的錯誤信息
答案正確: 恭喜!您通過了這道題
運行錯誤: 您提交的程序在運行時發(fā)生錯誤,可能是空指針
部分正確: 您的代碼只通過了部分測試點凳兵,繼續(xù)努力百新!
格式錯誤: 您的程序輸出的格式不符合要求(比如空格和換行與要求不一致)
答案錯誤: 您的程序未能對評測系統(tǒng)的數(shù)據(jù)返回正確的結(jié)果
運行超時: 您的程序未能在規(guī)定時間內(nèi)運行結(jié)束
內(nèi)存超限: 您的程序使用了超過限制的內(nèi)存
異常退出: 您的程序運行時發(fā)生了錯誤
返回非零: 您的程序結(jié)束時返回值非 0,如果使用 C 或 C++ 語言要保證 int main 函數(shù)最終 return 0
浮點錯誤: 您的程序運行時發(fā)生浮點錯誤庐扫,比如遇到了除以 0 的情況
段錯誤 : 您的程序發(fā)生段錯誤饭望,可能是數(shù)組越界,堆棧溢出(比如形庭,遞歸調(diào)用層數(shù)太多)等情況引起
多種錯誤: 您的程序?qū)Σ煌臏y試點出現(xiàn)不同的錯誤
內(nèi)部錯誤: 請仔細檢查你的代碼是否有未考慮到的異常情況铅辞,例如非法調(diào)用、代碼不符合規(guī)范等萨醒。
4. 開始練習(xí)吧
http://www.nowcoder.com/books/coding-interviews
http://www.nowcoder.com/questionCenter?orderByHotValue=0&questionTypes=000100
5. 有任何問題加QQ群 244930442