python笔试编程题_python_编程面试题
使用递归方法对一个数组求最大值和最小值
"""用递归算法求解一个数组的最大值和最小值
思路:
1、首先假设这个列表只有1个元素或两个元素
2、再考虑超过两个元素的情况,将该列表从中间位置一分为二
3、然后递归调用该函数"""
defmyMaxMin(L,start,end):'''递归来得到数组的最大值和最小值'''
if end - start <= 1:#基准点的情况
return(max(L[start],L[end]),min(L[start],L[end]))else:
max1, min1= myMaxMin(L,start,(start+end)//2)#求前半部分的
max2, min2 = myMaxMin(L,(start+end)//2+1,end)#求后半部分的
returnmax(max1,max2),min(min1,min2)defmaxMin(L):assert(type(L) == type([]) and len(L) >0)
maxV, minV= myMaxMin(L,0,len(L)-1)print(maxV,minV)returnmaxV, minV
L= [1,3,5,6,7,8,5,7,8,-9]assert(maxMin(L) == (8,-9))
使用递归的方法求出10个球的颜色可能性打印出来(颜色只有黑、白两种)
'''有10个球,每个球有两种颜色选择,黑与白,使用递归的方法把这10个球的颜色可能性打印出来
1、将这10个球放入到一个列表中,全部用0表示,0表示白,1表示黑
2、找基准点(程序结束的条件)start = end,打印结果'''count=0defperm(L,start,end):if start == end:#基准点,表示已经给每个球都赋值了一个颜色
print(L)globalcount
count+= 1
else:
perm(L,start+1,end)
L[start]= (L[start]+1)%2#实现1与0的互换
perm(L,start+1,end)
L=[0,0,0,0,0,0,0,0,0,0]
res=perm(L,0,len(L))print(count)#1024,2**10
使用两个栈实现一个队列
'''使用两个栈实现一个队列
队列:a,b,c -->c,b,a'''
classQueueWithStacks:def __init__(self):
self.s1=[]
self.s2=[]defpush(self,e):
self.s1.append(e)defpop(self):if len(self.s2) ==0:while len(self.s1) >0:
t=self.s1.pop()
self.s2.append(t)assert len(self.s2) > 0,'队列已经为空'#此时说明队列没有元素
returnself.s2.pop()
q=QueueWithStacks()
q.push('a')
q.push('b')
q.push('c')print(q.pop())print(q.pop())print(q.pop())print(q.pop())#AssertionError: 队列已经为空
实现单例模式
classSingleton:__instance =None
@classmethoddefget_instance(cls):if cls.__instance:return cls.__instance
else:
cls.__instance =Singleton()return cls.__instanceobj1=Singleton.get_instance()print(obj1) #<__main__.Singleton object at 0x7eff2ce22b70>
obj2 =Singleton.get_instance()print(obj2) #<__main__.Singleton object at 0x7eff2ce22b70>
classSingleton(object):def __new__(cls, *args, **kwargs):if not hasattr(cls,'_instance'):
cls._instance= super(Singleton,cls).__new__(cls)returncls._instance
s1=Singleton()
s2=Singleton()print(s1 == s2) # True
闭包
deffoo():return [lambda x: i+x for i in range(4)]print([x(3) for x infoo()])#将上面的程序改写,以便更好的理解
deffoo():
function_list=[]for i in range(4):
function_list+= [lambda x: i+x]return function_list #返回一个存有四个函数的列表
#x其实就是表示x=lambda x: i+x,所以x(3)就表示lambda 3: i+3,只不过此处用到了闭包的概念:i是foo函数的局部变量,x是foo的内嵌函数#内嵌函数引用外部函数的变量i,当foo函数执行完毕返回一个函数列表时,i的值已经是3了,所以当x函数中的i就是3,所以结果就是[3+3,3+3,3+3,3+3]
print([x(3) for x in foo()])
编译一个目录,找出该目录下的所有文件
importos
file_list=[]deftraversal_directory(dir):for child inos.listdir(dir):
parent_child=os.path.join(dir, child)ifos.path.isdir(parent_child):
traversal_directory(parent_child)else:
file_list.append(parent_child)returnfile_listif __name__ == "__main__":for file in traversal_directory("slideshow"):print(file)
is与==的区别
"""==符号判断的是字面值
is判断的是对象的地址
==符号为True则用is判断也必定为True
is判断为True时用==符号判断未必是True"""
classA:
@staticmethoddef __eq__(var):returnTrueif __name__ == "__main__":print(A() == 1) # Trueprint(A() is 1) # Falseprint("A()的id",id(A()))print("1的id",id(1))
python与C语言在运行效率上哪个更快,并编写代码验证
求第45个斐波那契数
importtimedeffun(n):if n <= 2:return 1
return fun(n-1) + fun(n-2)
start=time.time()
res= fun(45)
end=time.time()
tm= end -startprint(tm) # 287.7714354991913,大约5分钟print(res)
#include #include#include //导入sleep函数
long fib(intn){if(n <= 2){return 1;
}else{return fib(n-1) + fib(n-2);
}
}intmain(){
unsignedlong start = time(0);long res = fib(45);
unsignedlong end = time(0);double time = end -start;
printf("time:%f\n",time); //大约5秒钟
printf("res:%ld\n", res);return 0;
}
python笔试编程题_python_编程面试题相关推荐
- python期末考试编程题_Python_编程题期末必看
#NO1_4‐3 # 计算 1^2‐2^2+3^2‐4^2+...+97^2‐98^2+99^2 . s = 0 flag = 1 for i in range ( 1 , 100 ): s = s ...
- python笔试110题(Interview questions)
python笔试110题–详解 一行代码实现1-100之和 解: print(sum(range(1, 101))) 如何在一个函数内部修改全局变量 解: 1)函数内部用global声明,global ...
- java在线编程题_阿里笔试题(2017在线编程题)-- 数串分组 --Java实现
看到有人写了阿里的面试题,心里痒痒,好久 没搞过这些了,写着实现一下 题目 2017年3月阿里在线编程题(实习内推) 给定一串数字 判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字 ...
- java 字符串编程题_Java编程题——在一个字符串中查找第一个非重复的字符
编写一个Java程序来查找一个字符串中第一个非重复的字符,这是在编程测试中很常见的一个问题,因为字符串处理在程序员面试中是一个普遍的话题.面试前最好是准备好一些熟知的编程问题,例如使用递归反转字符串, ...
- 美团2021校招笔试-编程题(通用编程试题,第9场)
第一题题目没看懂 团的蛋糕铺长期霸占着美团APP中"蛋糕奶茶"栏目的首位,因此总会吸引各路食客前来探店. 小团一天最多可以烤n个蛋糕,每个蛋糕有一个正整数的重量. 早上,糕点铺已经 ...
- 美团2021校招笔试-编程题(通用编程试题,第10场)
import java.util.*;public class Main{public static void main(String[] args) {Scanner sc = new Scanne ...
- 美团2021校招笔试-编程题(通用编程试题,第1场)2. 小美的评分计算器
美团对于商家的评价体系是1-5星评价体系,用户在完成订单之后可以对商家打1/2/3/4/5星,而在客户端上,商家的评级却不一定是整数,而是会显示小数点后的一位.很显然这就需要一个计算器了,小美拥有了一 ...
- 美团2021校招笔试-编程题(通用编程试题,第1场)1. 小美的送花线路
小美是美团的一名鲜花快递员,鲜花是一种保质期非常短的商品,所以需要尽快送到客户手中,公司对于骑手的一个要求就是要规划送花的线路,使得骑手送完所有订单走的路程尽可能少.(骑手开始派送时带走了所有需要派送 ...
- 机器人 c语言编程题,机器人机器人小高试题模拟题
"小小科学家"广东省第五届少年儿童科学教育体验活动 小机器人竞赛模拟试题 小学高年级组个人赛 参赛编号 ______ 学校:_________ 班级:_____ 姓 ...
最新文章
- VS Code(Visual Studio Code)编辑器的常用设置
- 伪元素:placeholder-shown:focus-within
- 多方安全计算:隐私保护集合求交技术
- 有凤来仪的意思是什么?成语有凤来仪比喻什么?
- 安装 Maxwell
- 娱乐视频直播背后的技术支持——DASH重构
- 数据库实验-- 更新语句
- 利用F12下载网页高清图像
- 服务器2008 ftp配置文件,win2008 r2服务器ftp配置
- 派生类的构造函数xu(c++)
- 智汇云校携手院校组织数千学生参加“2020华为中国大学生ICT大赛”
- 一款好的软件,软件测试必不可少...
- 电阻、二极管、三极管搭出的逻辑电路
- 微软春天发布活动将聚焦在Windows 10云版
- Java验证码(图片、字符串)生成工具
- 员工逼我加薪,不加就走人,怎么办?
- 超火的ChatGPT技术原理与我们关系
- 计算机如何安装cpu风扇,cpu风扇安装,小编教你cpu风扇怎么安装
- 去掉visual studio code样式中的references
- python图片转化pdf
热门文章
- 统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现
- 对Javascript 类、原型链、继承的理解
- 云栖科技评论第53期:前沿技术要“会说话”
- dedecms的自定义模块
- Android自动化测试-从入门到入门(5)AdapterView的测试
- 【算法学习笔记】83.排序辅助 动态规划 SJTU OJ 1282 修路
- 使内嵌式jetty服务器支持jsp
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(二)
- 关于Exchang server 2010 MCITP
- Open Asset Import Library