牛客网 刷题前的准备工作
牛客网 刷题前的准备工作
1. 数据读取接受问题
- leetcode是直接调用我们写一个函数来测试算法,不存在数据的读取问题。牛客是写一个完整的程序,需要读取题目给出的数据。
- 牛客的数据处理方式:需要接受数据,返回数据。
接受数据的方式两种:line_in_data = sys.stdin.readline().strip()
,有时可以用line_indata = input()
替代(注意:input()内不能加字符串)。
输出数据的方式:print(out_data)
,(注意:不是return
)
牛客官网推荐的接受数据的代码 python,其他语言见链接:https://www.nowcoder.com/discuss/276:
官网 python2 的模板如下:
# 作者:管理员
# 链接:https://www.nowcoder.com/discuss/276
# 来源:牛客网
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
为了方便在本地调试,我将代码改成如下,我看了牛客替他人提交的答案,也是将while
写在了try
里面(官网模板相反)(自己使用的模板):
# -*- coding: utf-8 -*-
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
2.牛客刷题前的准备:
2.1. 弄清楚输入输出的行数关系
根据链接牛客网 多行输入输出问题 Python3 模板样例的总结如下(自己简写了代码):
- 输入数据一行,输出数据也是一行:
模板如下:
# -*- coding: utf-8 -*-
i = input()
print(i