社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python面试题,考验你能力的时候到了!

python • 7 年前 • 587 次点击  

面试题1 数字在排序数组中出现的次数

思路: 使用二分法分别找到数组中第一个和最后一个出现的值的坐标,然后相减

面试题2二叉树的深度

思路: 分别递归的求左右子树的深度

面试题3 数组中只出现一次的数字

要求:数组中除了两个只出现一次的数字外,其他数字都出现了两遍

思路: 按位异或,在得到的值中找到二进制最后一个1,然后把数组按照该位是0还是1分为两组

面试题4 和为s的两个数字VS和为s的连续正数序列和为s的两个数字

要求:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使其和为s

思路: 设置头尾两个指针,和大于s,尾指针减小,否砸头指针增加

和为s的连续整数序列

要求:输入一个正数s, 打印出所有和为s的正整数序列(至少两个数)

思路: 使用两个指针,和比s小,大指针后移,比s大,小指针后移

面试题5 翻转单词顺序与左旋转字符串

翻转单词顺序

要求:翻转一个英文句子中的单词顺序,标点和普通字符一样处理

思路: Python中字符串是不可变对象,不能用书中的方法,可以直接转化成列表然后转回去

左旋转字符串

思路: 把字符串的前面的若干位移到字符串的后面

面试题6 n个骰子的点数

要求:求出n个骰子朝上一面之和s所有可能值出现的概率

思路:n出现的可能是前面n-1到n-6出现可能的和,设置两个数组,分别保存每一轮

面试题7 扑克牌的顺子

要求:从扑克牌中随机抽取5张牌,判断是不是顺子,大小王可以当任意值

思路: 使用排序

面试题8 圆圈中最后剩下的数字

要求:0到n-1排成一圈,从0开始每次数m个数删除,求最后剩余的数

思路:当 n > 1 时: f(n,m) = [f(n-1, m)+m]%n,当 n = 1 时: f(n,m)=0,关键是推导出关系表达式

面试题9 求1+2...+n

要求:不能使用乘除、for、while、if、else等

方法一:使用range和sum

方法二:使用reduce

面试题10 不用加减乘除做加法

要求:不用加减乘除做加法

方法一:使用位运算,Python中大整数会自动处理,因此对carry需要加个判断

方法二:使用sum

面试题11 把字符串转化成整数

要求:把字符串转化成整数

测试用例:正负数和0,空字符,包含其他字符

备注:使用raise抛出异常作为非法提示

面试题12 树中两个结点的最低公共祖先

要求:求普通二叉树中两个结点的最低公共祖先

方法一:先求出两个结点到根结点的路径,然后从路径中找出最后一个公共结点

备注:文件fifty.py中包含该代码的具体测试数据



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/zOcR6Qax5K
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4283
 
587 次点击