题目:https://www.nowcoder.com/test/27976983/summary#question
大众答案:牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ
结论:
需理解如下函数
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))