python牛客网的标准输入练习题11

题目:https://www.nowcoder.com/test/27976983/summary#question

大众答案:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ

登录—专业IT笔试面试备考平台_牛客网

结论:

需理解如下函数

split()函数,表示将数据以空格分割为多个字符串,最终返回列表(元素为字符串)

strip()函数,表示去除两边的空格

sort()对可变对象(如列表)进行排序,sort(key=lambda x:(len(x),x[0]),reverse=False表示先以长度排序,再以首字母排序,False表示升序。如果是不可变序列,使用resorted排序

line=sys.stdin  获取的是所有输入,line=sys.stdin.readline(),获取的是一行一行的,等价于for line in sys.stdin:

sum(map(int,(a[1:]))),map函数,对列表中的字符串元素转为数字,再求和

map() 会根据提供的函数对指定序列做映射


def square(x):
    return x ** 2
 
ret = map(square, [1, 2, 3, 4, 5])
print(list(ret))# [1, 4, 9, 16, 25]

print(','.join(a)),以逗号来连接对象a中的元素

题目解题

A+B(1)

import sys

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

A+B(2)

import sys

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

for line in sys.stdin:
    a = line.strip().split(r',')
    a.sort()
    print(','.join(a))

A+B(3)

import sys

for line in sys.stdin:  #一行一行的值拿出来
    a = line.split()
    if int(a[1])==0 and int(a[0])==0:
        break
    print(int(a[0]) + int(a[1]))





import sys

while True:
    a = input()
    if a !='0 0':
        for f in a.split():    #一个一个值拿出来
            print('f:',f)
            print(sum([int(f)]))
    else:
        break

A+B(4)

import sys

for line in sys.stdin:
    a = line.split()
    if a[0]!='0':
        print(sum(map(int,a[1:])))
    else:
        break

A+B(5)

import sys


for line in sys.stdin:
    try:
        a = line.strip().split()
        if len(a)>1:
            print(sum(map(int,a[1:])))
    except:
        pass

A+B(6)

输入例子:
4 1 2 3 4
5 1 2 3 4 5
输出例子:
10
15



import sys


for line in sys.stdin:
    a = line.strip().split()
    print(sum(map(int,(a[1:]))))

A+B(7)

import sys
 
for line in sys.stdin:
    a = line.strip().split()
    print(sum(map(int,(a[:]))))

字符串排序(1)

输入例子:
5
c d a bb e
输出例子:
a bb c d e





import sys

def solution(arr):
    arr.sort()
    return arr

'''a.sort(key=lambda x:x[0],reverse = False)   
x[0]表示首字母排序,list.sort(key=lambda x: (len(x), x[0])),表示先按长度、再按首字母排序

key主要是用来进行比较的元素,只有一个参数。
reverse为排序规则,默认升序(False),可以指定降序(True)'''

'''对于Python内置的不可变类型(如字符串、元组等),sort()函数无法修改原对象,需要使用sorted()函数'''



if __name__=="__main__":
    try:
        n = sys.stdin.readline()
        line = sys.stdin.readline().strip().split()   #sys.stdin表示全部输入,sys.stdin.readline()表示一行,
        result = solution(line)
        print(' '.join(line))#将排好序的列表中的元素(字符串)以空格合并
    except:
        pass

字符串排序(2)

import sys

for line in sys.stdin:
    a = line.strip().split()
    a.sort()#此处不能放到上一步
    print(' '.join(a))

字符串排序(3)

import sys
 
 
for line in sys.stdin:
    a = line.strip().split(',')
    a.sort()
    print(','.join(a))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值