码迷,mamicode.com
首页 > 其他好文 > 详细

20190901拼多多和腾讯

时间:2019-09-05 23:12:27      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:bsp   and   return   int   偶数   pytho   退出   for   app   

好几道排序的题目

PDD(手机里有题目)

 

# 优先偶数的有序TopN(AC)
def QuickSort(array,left,right):
    # 递归的退出条件
    if left >= right:
        return
     
    temp = array[left]
    i = left
    j = right
    while i<j:
        while array[j]>temp and i<j:
            j -= 1
        if array[j]<temp:
            array[i] = array[j]
            i += 1
        while array[i]<temp and i<j:
            i += 1
        if array[i]>temp:
            array[j] = array[i]
            j -= 1
    array[i] = temp
    QuickSort(array,left,i-1)
    QuickSort(array,i+1,right)

def topN(lst,N):
    lst_a = []
    lst_b = []
    for item in lst:
        if item%2 == 0:
            lst_a.append(item)
        if item%2 != 0:
            lst_b.append(item)
    print("偶数:",lst_a)
    print("奇数:",lst_b)
    QuickSort(lst_a,0,len(lst_a)-1)
    QuickSort(lst_b,0,len(lst_b)-1)
    lst_a = lst_a[::-1]
    lst_b = lst_b[::-1]
    lst_a.extend(lst_b)
    res = lst_a[:N] 
    return ",".join([str(x) for x in res])

if __name__ == "__main__":
    lst,n = input().split(";")
    lst = list(map(int,lst.split(",")))
    N = int(n)
    print(lst)
    print(topN(lst,N))

 腾讯记得第一题AC了(图在对象那里)

# 优先偶数的有序TopN
def QuickSort(array,left,right):
    # 递归的退出条件
    if left >= right:
        return
     
    temp = array[left]
    i = left
    j = right
    while i<j:
        while array[j]>temp and i<j:
            j -= 1
        if array[j]<temp:
            array[i] = array[j]
            i += 1
        while array[i]<temp and i<j:
            i += 1
        if array[i]>temp:
            array[j] = array[i]
            j -= 1
    array[i] = temp
    QuickSort(array,left,i-1)
    QuickSort(array,i+1,right)

def topN(lst,N):
    lst_a = []
    lst_b = []
    for item in lst:
        if item%2 == 0:
            lst_a.append(item)
        if item%2 != 0:
            lst_b.append(item)
    print("偶数:",lst_a)
    print("奇数:",lst_b)
    QuickSort(lst_a,0,len(lst_a)-1)
    QuickSort(lst_b,0,len(lst_b)-1)
    lst_a = lst_a[::-1]
    lst_b = lst_b[::-1]
    lst_a.extend(lst_b)
    res = lst_a[:N] 
    return ",".join([str(x) for x in res])

if __name__ == "__main__":
    lst,n = input().split(";")
    lst = list(map(int,lst.split(",")))
    N = int(n)
    print(lst)
    print(topN(lst,N))

  

20190901拼多多和腾讯

标签:bsp   and   return   int   偶数   pytho   退出   for   app   

原文地址:https://www.cnblogs.com/ivyharding/p/11470139.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!