四十七、第二份国外的Python考试(上篇)

@Author:Runsen
@Date:2020/5/26

作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件。导致翘课严重,专业排名中下。.在大学60%的时间,都在CSDN。决定今天比昨天要更加努力。

之前撸了一份国外的Python考试题目,那个留学生还有一份,我接着继续撸。走,看看国外的Python考试题到底是什么东西?

满分55分,之前的是70,不知道什么回事,撸就对了。

第一题

第一题很明显就是一个时间复杂度的题目,一个快速排序,一个链表查找,一个冒泡排序,一个链表插入,一个二叉搜索,一个访问Python列表中的单个元素。

快速排序Onlogn)Onlogn),链表查找On)On),冒泡排序On2)On^2),链表插入O(1)O(1),二叉搜索O(Logn)O(Logn)
访问Python列表中的单个元素O(1)O(1)

Python列表做元素的遍历、删除、插入等操作,对应的时间复杂度为O(n);访问某个索引的元素、尾部添加元素或删除元素这些操作比较适合做,对应的时间复杂度为O(1)。

答案我不知道,没有标准答案。

第二题是指出函数的时间复杂性

三个循环,但是结尾是一个n//4,应该是O(nlogn)O(nlogn),因为for i in range(10)这个是O(1)O(1)

二个循环,应该是O(n2)O(n^2)

第二题

打印出什么,2fizbin(6,10),然后就是4fizbin(3,5),答案就是4。

一开始mid等于2,left = mysteryFun([1,0]) = mysteryFun([1]) +mysteryFun([0]) = 1

right = mysteryFun([2,3]) = mysteryFun([2]) +mysteryFun([3]) = 4+9=13

答案14。

如果mysteryFun([0,1]),运行3次。

写一个函数应该返回一个由列表中所有字符串组成的字符串,这些字符串以一个空格分隔的给定字符开头,用字符决定排序的列表。

难度一般,

def alliterationMaker(alist,char):
    # 对alist的开头不是char的去除
    for i in alist:
        if i[0] != char:
            alist.pop(alist.index(i))
    alist.sort()
    return alist

if __name__ == '__main__':
    print(alliterationMaker(["big","cow","bug","bit","table","black","bear"],"b"))
    
['bear', 'big', 'bit', 'black', 'bug']

第三题

就是把从大到小,6,5,4,2,2,然后再全部加一,7,6,5,3,3.再反转,3,3,5,6,7

答案8,7,6,25

第四题

二叉树的遍历是指从二叉树的根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次,且仅被访问一次,分别有前序遍历,中序遍历,后序遍历

前序遍历通俗的说就是从二叉树的根结点出发,当第一次到达结点时就输出结点数据,按照先向左在向右的方向访问。

中序遍历就是从二叉树的根结点出发,当第二次到达结点时就输出结点数据,按照先向左在向右的方向访问。

后序遍历就是从二叉树的根结点出发,当第三次到达结点时就输出结点数据,按照先向左在向右的方向访问。

选项A就是后序遍历 正确
选项B就是前序遍历 但是错误
选项C就是前序遍历 正确
选项D什么遍历都不是,错误
选项E什么遍历都不是,错误

当输入是上面显示的树时,显示以下代码打印的内容。

这个真的不知道写什么,就是不断地分解子树,打印出来

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章