牛客acm模式总结
0.开头结尾统一代码
1 2 3 4 5 6 7 8 9
| ''' try :可能抛出异常的语句。 except :捕获异常,处理异常。 ''' while True: try: core code except: break
|
1.单个元素 列输入,列输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ''' 输入 3 5 6 7 输出 5 6 7 其中第一个3代表着一共有3个数字 需要将他们依次输出
输入实际上就是一个迭代器,每次获取一个元素就用一次input()函数 我们可以首先获得第一个输入的值 然后 for 循环对应的次数,将剩余待输入的元素依次输出 ''' n = int(input()) for i in range(n): print(int(input()))
|
- 单个元素 列输入,行输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ''' 输入 3 5 6 7 输出 [5,6,7] 同理,跟第一种情况差不多 获取第一个输入元素,然后for循环对应次数 将剩余的元素添加到一个数组中即可 ''' n = int(input()) res = [] for i in range(n): res.append(int(input())) print(res)
|
- 单行输入转成字符串列表
1 2 3 4 5 6
| ''' 输入:3 abc bca cab abc 1 输出:['3', 'abc', 'bca', 'cab', 'abc', '1'] ''' a = list(input().split()) print(a)
|
4.单行输入转成整数型列表
1 2 3 4 5 6
| ''' 输入:1 2 3 4 5 6 输出:[1,2,3,4,5,6] ''' nums = list(map(int,input().split())) print(nums)
|
map() 会根据提供的函数对指定序列做映射。以参数序列中的每一个元素调用 function 函数,返回一个列表。
map(function, iterable, …)
一般会使用"“.join(map(str,[1,2,3,4]))将整形数组[1,2,3,4]每个元素转变为字符串之后用”"连接
join()方法将字符串列表中的字符元素合并为一个大的字符串
5.单行输入获取每个元素
1 2 3 4 5 6
| ''' 输入:3 5 需要获取3和5以便后续运算 ''' x, y = map(int,input().split())
|
input()默认为字符串
6.strip()掐头去尾
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ''' Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。 注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。
''' str = "*****this is **string** example....wow!!!*****" print (str.strip( '*' ))
str = "12123abcrunoob32121" print (str.strip( '12' ))
str = " 5 4 3 2 1 3 4 5 " print (str.strip().split())
|
7.多行多元素输入,创建二维数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ''' 输入二维数组: 3 1 3 1 1 5 1 4 2 1 (3为数组行数) 输出: [[1,3,1], [1,5,1], [4,2,1]] ''' n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split())))
|
8.以空格分隔,输出数组元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ''' 输入:[1,2,3,4,1] 输出:1 2 3 4 1 '''
a = input() print(*a)
a = input() for i in range(len(a)): print(a[i],end=' ')
for i in range(len(a)-1): print(a[i],end=' ') print(a[-1])
|
9.二维数组以空格分隔输出
1 2 3 4 5 6
| ''' 输入:[[1,2,5],[6,7,8],[3,9,4]] 输出:[1, 2, 5] [6, 7, 8] [3, 9, 4] ''' a = input() print(*a)
|
10.遇0结束情况
1 2 3 4 5 6 7 8
| ''' 注意,这里无需循环 一行代表一个case ''' a, b = map(int, input().split()) if a == 0 and b == 0: break print(a + b)
|

1 2 3 4 5 6 7 8 9 10
| ''' 注意,这里无需循环 一行代表一个case '''
arr = list(map(int,input().strip().split())) n, nums = arr[0], arr[1:] if n == 0: break print(sum(nums))
|
