2020-04-22 面试总结

  1. “((5+(2x(3-(1+(2x4))))))” 通过用户输入字符串,求出最里面括号的值
    代码:
    def parench(data):
    	"""算括号"""
        if "(" in data:
            while 1:
                if ")" in data:
                    b = data.index(")")
                    for i in range(b, -1, -1):
                        if data[i] == "(":
                            new_list = []
                            new_list = data[i+1:b]
                            """通过四则函数求值"""
                            byte = compute(new_list)[0]
                            del(data[i:b+1])
                            data.insert(i,byte)
                            break
                else:
                    return compute(data)
        else:
            compute(data)
    
    while 1:
        data = input("请输入算数:")
        if data == "": continue
        data = change_list(data)
        parench(data)
        print(data[0])
        if input("如果输入q则退出:\n") == "q":
            exit()
    
  2. 一群人晚上过桥,每次只能过2个人,并且需要一盏灯。每个人过桥时间不同。甲乙丙丁独自过桥分别耗时1,3,5,7分钟,灯只有一盏,计算最短时间。
    1,3过去,1回来,耗时4分钟
    5,7过去,3回来,耗时10分钟
    1,3过去,耗时3分钟,功耗时17分钟
  3. n*m维数组,每一行,每一列都递增,请编写代码找出某元素
def ArraySearch(array,num):
	if len(array) and len(array[0]):
		row = 0
		col = len(array[0])
		while row != len(array) and col != -1:
			if array[row][col] > num:
				col -= 1
			elif array[row][col] < num:
				row += 1
			else:
				return (row,col)
		return False
	else:
		return False

你可能感兴趣的:(Python)