牛客网IO练习

2019/12/06 02:46
阅读数 526

#牛客网IO练习

[toc]

1. 计算a+b

计算a+b

输入描述: 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。 输出描述: 输出a+b的结果

import sys
for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))

其中sys.stdin和stdout是标准输入输出函数,

import fileinput
for line in fileinput.input():
    a = line.split()
    print(int(a[0]) + int(a[1]))

或者也可以用fileinput,其中也有input函数,可以用来进行输入流。

2. 计算a+b

计算a+b

输入描述: 输入第一行包括一个数据组数t(1 <= t <= 100) 接下来每行包括两个正整数a,b(1 <= a, b <= 10^9) 输出描述: 输出a+b的结果

python自带input,直接用python自带的input。

num = input()
num = int(num)
for i in range(num):
    a = input()
    Input_Num = a.split()
    print(int(Input_Num[0]) + int(Input_Num[1]))

或者混合起来,第一个用input,其他的都用输入流来解决。

import fileinput
num = input()
num = int(num)
for line in fileinput.input():
    a = line.split()
    print(int(a[0])+int(a[1]))

3. 计算a+b

计算a+b

输入描述: 输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入 输出描述: 输出a+b的结果

这个就是还是用流输入,只不过需要加一个终止的break。

from fileinput import input
for line in input():
    a = line.split()
    if int(a[0])!=0 and int(a[1])!=0:
        print(int(a[0])+int(a[1]))
    else:
        break

4. 计算a+b

计算一系列数的和

输入描述: 输入数据包括多组。 每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。 接下来n个正整数,即需要求和的每个正整数。 输出描述: 每组数据输出求和的结果

还是稳如老狗的流输入,最后加一点点数学小技巧。

from fileinput import input
for line in input():
    a = line.split()
    for i in range(len(a)):
        a[i] = int(a[i])
    if a[0] != 0:
        print(sum(a)-a[0])
    else:
        break

5. 计算a+b

输入描述: 输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。 接下来t行, 每行一组数据。 每行的第一个整数为整数的个数n(1 <= n <= 100)。 接下来n个正整数, 即需要求和的每个正整数。 输出描述: 每组数据输出求和的结果

定睛一看,这是上面某两道题的组合。我感觉我刷这个刷的越来越快。。。

import fileinput
num = int(input())
for i in fileinput.input():
    n = i.split()
    n = list(map(lambda x:int(x),n))
    print(sum(n)-n[0])

我感觉有一个事情很困扰我,就是一开始用num控制循环,但是始终报错,但是用流控制循环,就莫名通过了,这事情太迷了。

6. 计算a+b

计算一系列数的和

输入描述: 输入数据有多组, 每行表示一组输入数据。 每行的第一个整数为整数的个数n(1 <= n <= 100)。 接下来n个正整数, 即需要求和的每个正整数。 输出描述: 每组数据输出求和的结果

这个,就是比刚刚那个还简单的一些操作,我不评价了。

from fileinput import input
for line in input():
    a = line.split()
    a = list(map(lambda x:int(x),a))
    print(sum(a)-a[0])

7. 计算a+b

计算一系列数的和 输入描述: 输入数据有多组, 每行表示一组输入数据。

每行不定有n个整数,空格隔开。(1 <= n <= 100)。 输出描述: 每组数据输出求和的结果

我感觉这题出的越来越懒了。我佛了。

from fileinput import input
for line in input():
    a = line.split()
    a = list(map(lambda x:int(x),a))
    print(sum(a))

8. 字符串排序

对输入的字符串进行排序后输出 输入描述: 输入有两行,第一行n

第二行是n个空格隔开的字符串 输出描述: 输出一行排序后的字符串,空格隔开,无结尾空格

一开始没有仔细看题,后来看了一些,发现排序函数有点问题。

num = int(input())
line = input()
a = line.split()
a = sorted(a)
s = ''
for i in range(num - 1):
    s += a[i] +' '
s += a[-1]
print(s)

9. 字符串排序

对输入的字符串进行排序后输出 输入描述: 多个测试用例,每个测试用例一行。

每行通过空格隔开,有n个字符,n<100 输出描述: 对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

就是把上面第二行的input换成流。

from fileinput import input
for line in input():
    a = line.split()
    a = sorted(a)
    s = ''
    for i in range(len(a)-1):
        s+=a[i]+' '
    s += a[-1]
    print(s)

无比寒碜啊。

10. 字符串排序

对输入的字符串进行排序后输出 输入描述: 多个测试用例,每个测试用例一行。 每行通过,隔开,有n个字符,n<100 输出描述: 对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

就是把上面的‘ ’换乘',。

from fileinput import input
for line in input():
    a = sorted(line.strip().split(','))
    s = ''
    for i in range(len(a)-1):
        s+=a[i]+','
    s += a[-1]
    print(s)

但是我其实搞这个的时候翻车了,因为没有注意这个字符串每行都用,隔开,所以需要去掉最后的,。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部