计蒜客 交叉排序

输入一行 k 个用空格分隔开的整数,依次为 n1, n2 … nk。请将所有下标不能被 3 但可以被 2 整除的数在这些数字原有的位置上进行升序排列,此外,将余下下标能被 3 整除的数在这些数字原有的位置上进行降序排列。

输出包括一行,与输入相对应的若干个整数,为排序后的结果,整数之间用空格分隔。

样例1

输入:

1 5 4 3 10 7 1

输出:

1 3 7 5 10 4 19

python:

list = raw_input().split()
list1 = []
list2 = []
for i in range(len(list)):
    if (i+1)%3 != 0 and (i+1)%2 == 0:
        list1.append(int(list[i]))
    elif (i+1)%3 == 0:
        list2.append(int(list[i]))
list1.sort()
list2.sort(reverse = True)
j,k = 0,0
for i in range(len(list)):
    if (i+1)%3 != 0 and (i+1)%2 == 0:
        del list[i]
        list.insert(i,str(list1[j]))
        j += 1
    elif (i+1)%3 == 0:
        del list[i]
        list.insert(i,str(list2[k]))
        k += 1
print ' '.join(list)

开始的时候,怎么也通过不了后台判断,后来才发现整型和字符型排序方法不一样。

你可能感兴趣的:(编程练习)