1:相信每年求职的时候,大家都会被牛客网的输入输出问题恶心到,明明在本地中是完全可以成功的,但是放到牛客上面就是0ac,看不到为什么错,输入输出还要搞半天,所以在这里记录一下
1:单输入,单输出的情况
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。示例1 输入: hello world 输出: 5
解决模板:
import sys
for line in sys.stdin:
...
print()
注意一定要在循环中输出,因为用例有很多,每个用例都要在程序中运行一遍。
2:多输入多输出情况,行数未知
注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
样例输入解释:
样例有两组测试 第一组是3个数字,分别是:2,2,1。
第二组是11个数字,分别是:10,20,40,32,67,40,20,89,300,400,15。
输入多行,先输入随机整数的个数,再输入相应个数的整数
返回多行,处理后的结果
解决模板:
while True:
try:
n = int(input())
...进行处理,结果放到数组l之中
for i in l:
print(F(i), end='\n')
except:
break
本节内容演示的是使用while 循环的过程,且事先不知道输入的行数,对于事先知道输入行数,可以用while循环,也可以用for..in..
。值得注意的是,默认的输入是字符串类型,如果对输入进行整数的加减操作,应该在前面加上float,int
等值对其类型进行转化
3:多输入多输出情况,行数已知
while True:
try:
num = int(input())
for i in range(num):
tmp = input()
...
print()
except:
break
4:万能输入模板
data=list(map(int,input().split()))
print(data)
PS:牛客的输出是字符串类型,所以计算出来的整形数字一定要转化为字符串
while True:
try:
string = [i for i in input().split(';')]
table = {'A':0,'S':0,'W':0,'D':0}
for i in string:
if judge(i):
table[i[0].upper()]+=int(i[1:])
else:
continue
x = table['D']-table['A']
y = table['W']-table['S']
print(str(x)+','+str(y))
except:
break