最近一直在忙着写论文,面试和笔试,很少进行总结,尤其是tx的面试,让我发现自己基础是真的不牢固,红宝书那本书确实是很好的一本书,我第一遍看的时候很多地方都没看懂,后来系统跟着课程学了之后,再回头去看那本书的一些部分,也有不同的收获,为了找工作,我一直在忙于背八股,搭项目,却忽视了最基础的架构——javascrpt,反思一下自己
这篇文章主要是想写一些赛码网的环境搭建,赛码网的输入输出都是有自己定义的输入输出函数的,昨晚写美团的笔试,本身题目并不难,却因为输入输出导致了很多问题,不应该。。。
赛码网自己定义了输入输出函数,具体可以看赛码网的oj文档,其实oj文档就在输入框右上方的编程题相关说明
官方也给出了输入输出的案例:
let arr = [];
let line;
while ((line = read_line()) != "") {
arr.push(line.split(' ').map(v=>parseInt(v)));
}
// 使用自测数据按钮时调试用,正式提交时要删掉。
for (let i=0; i<arr.length; i++) {
for (let j=0; j<arr[i].length; j++) {
printsth(arr[i][j], ' ');
}
print();
}
其中输入用的是read_line
函数,输出是printsth(sth, ...)
函数(不带回车),console.log
也可以进行输出,但是console.log
会在输出后面自带回车,print
和console.log
一样;
下面介绍如何在本地进行配置
print方法的实现
var print = console.log
read_line方法的实现
- 安装
readline-sync
,Node.js
的环境我就不多介绍了想必大佬们都清楚得很。
npm install readline-sync
- 写之前复制下面的代码到前面
var __readline = require('readline-sync')
__readline.setDefaultOptions({prompt: ''})
var read_line = __readline.prompt
至此,配置已经完成,这样就能直接将赛码网站的代码复制到本地IDE进行调试啦