Py学习  »  Python

Python面试时需要的基础知识,这些你都知道吗?

python • 6 年前 • 464 次点击  

面试题1:使用Python实现单例模式

方法一 使用__new__实现单例模式

方法二 使用装饰器实现单例模式

方法三 使用模块实现单例模式

可以使用模块创建单例模式,然后在其他模块中导入该单例,这个需要所有人遵守导入规则,不然就没法实现单例了

面试题2:二维数组中的查找

题目:二维数组中,每行从左到右递增,每列从上到下递增,给出一个数,判断它是否在数组中

思路:从左下角或者右上角开始比较

面试题3:替换空格

题目:把字符串中的空格替换成'20%'

方法1:直接使用Python字符串的内置函数

方法2: 使用正则表达式

面试题4 从尾到头打印单链表

方法1:使用栈,可以使用列表模拟

方法2:直接递归

面试题5 重建二叉树

要求:用前序和中序遍历结果构建二叉树,遍历结果中不包含重复值

思路:前序的第一个元素是根结点的值,在中序中找到该值,中序中该值的左边的元素是根结点的左子树,右边是右子树,然后递归的处理左边和右边

提示:二叉树结点,以及对二叉树的各种操作,测试代码见six.py


面试题6 用两个栈实现队列

要求:用两个栈实现队列,分别实现入队和出队操作 思路:一个栈负责入队,另一个负责出队,出栈为空则从入栈中导入到出栈中


面试题7 旋转数组的最小数字

要求:把递增数组的前面部分数字移到队尾,求数组中的最小值,例如[3,4,5,6,1,2]

思路:使用二分法,但要考虑[1, 0, 0, 1]这种数据,只能顺序查找


面试题8 斐波那契数列

思路:用生成器

面试题9 二进制中1的个数

要求:求一个整数的二进制表示中,1的个数

思路:二进制表示中,最后的那个1被减去后,低位都变为0,高位不变,按位与就可以去掉这个1






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