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

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

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

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

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

第一题

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

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

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

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

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

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

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

第二题

打印出什么,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什么遍历都不是,错误

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘要努力。

顺便点一个赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值