一般来说,常用的写算法题语言无外乎C\C++,Java(通常支持的语言)
不过也有很多新人在应对在线算法题的时候会考虑到其它语言
但是每个语言的输入输出是不一样的,必须符合数据的输入输出形式才能准确无误地AC。
这里总结一些Python3,Ruby,node.js的输入数据的写法
输入数据形式:
1,第一行输入一个n,第二行输入n个数据,以空格隔开,如
输入:5
输入:1 2 3 4 5
Python3写法:
n = int(input())
res = list(map(int,input().split())) #map返回一个迭代器,转成list即可
#以下处理题目的算法和输出
Ruby写法:
n = gets.to_i #字符串转数字
res = gets.split.map(&:to_i)
#以下处理题目的算法和输出
JavaScript(node.js)写法:
var readline = require('readline');
const res = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var count = 0;//行计数器
var n;
res.on('line', function (line){
if(count == 0){
n = parseInt(line.split(' ')[0]);
count++;
}else{
var res_char = line.split(' ');
var res = new Array(n);
for(var i = 0; i < n; i++){
res[i] = parseInt(res_char[i]);
}
/*
这里处理题目的算法与输出
*/
process.exit();
}
});
2,输入数据,连续处理(预先不知道有多少组数据/题目明示有多组数据处理,且未告知组数),如
//计算每组数据的和,有多组数据
输入:2 3 5
输出:10
输入:2 4
输入:1 3 3 5 4
输出:6
输出:16
Python3写法:
try:
while True:
res= list(map(int,input().split()))
#这里处理算法与输出
except Exception:
pass
JavaScript(node.js)写法:
var readline = require('readline');
const res = readline.createInterface({
input: process.stdin,
output: process.stdout
});
res.on('line', function (line){
var res_char = line.split(' ');
var n = res_char.length;
var res = new Array(n);
for(var i = 0; i < n; i++){
res[i] = parseInt(res_char[i]);
}
/*
这里处理题目的算法与输出
*/
});
Ruby写法:
while 1 do
begin
res = gets.split.map(&:to_i)
#这里处理题目的算法与输出
rescue
exit(0) #输入接收完毕,处理异常
else
end
end
`