我学习python,我的任务很困难。
任务:
输入2字符串:
5
2 3 9 2 9
样本输出:
2 2 3 9 9
我知道如何排序,但输入有问题。测试用例输入使用stdin。我写这个:
import sys
input = sys.stdin.read()
tokens = input.split()
n = int(tokens[0])
A = tokens[1:len(tokens)]
B = []
M = 10
for i in range(M):
B.append(0)
for j in range(n):
B[int(A[j])] = B[int(A[j])] + 1
k = 0
for i in range(M):
for j in range(B[i]):
A[k] = i
k = k + 1
print(A)
并获得错误" out range"对于 B [int(A [j])] = B [int(A [j])] + 1
答案 0 :(得分:0)
而不是
input = sys.stdin.read()
tokens = input.split()
n = int(tokens[0])
A = tokens[1:len(tokens)]
B = []
使用以下代码
input_n = sys.stdin.readline()
n = int(input_n)
input_tokens = sys.stdin.readline()
tokens = input_tokens.split()
A = tokens[0:len(tokens)]
B = []
您在不同的行上输入n和令牌。所以两次调用sys.stdin.readline()