小练习及一些面试题

  1. 请写出一段Python代码实现删除一个list里面的重复元素----最后没有重复元素
def func(li):
    new_li = list(set(li))
    new_li.sort(key=li.index)
    return new_li

if __name__ == '__main__':
    li = [3, 2, 4, 4, 2, 1, 3]
    print(func(li))
  1. 使用递归方法对一个数组求最大值和最小值
def rminmax(l, i=0, cmin=float('inf'), cmax=float('-inf')):
    e = l[i]
    if e < cmin:
        cmin = e
    if e > cmax:
        cmax = e
    if i == len(l) - 1:
        return cmin, cmax
    return rminmax(l, i + 1, cmin, cmax)


li = [1, 2, 3, 9, 3, 10]
print(rminmax(li))
  1. 实现单例模式

  2. 对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素

  3. 实现两个类,分别实现堆栈(Stack)和队列(Queue)操作

  4. a=[1, 2, 3] b=[2, 3, 4],c=[4, 5, 6, 7] 所有的组合

  5. a={'a':1, 'b':2, 'c':3} b={'b':2}, c={'a':1, 'b':2, 'd':1}

# print(d1.keys() & d2.keys() & d3.keys())
a = d1.items() & d2.items() & d3.items()
print(dict(a))
  1. 括号匹配问题
  2. list中的数字成最大的整数