直接来图
第三题比较简单,这里就不写了,咱们来看看前面2个算法题
首先第一题,题目条件没写不允许用第三方库,那么咱们可以灵活使用python的一个强大的迭代器库
itertools
import itertools
def sorted_(test_str):
res = set(itertools.permutations(test_str))
return sorted(list(map(lambda x:''.join(x), res)))
print(sorted_('zyx'))
#['xyz', 'xzy', 'yxz', 'yzx', 'zxy', 'zyx']
再来看看第二题,二维数组的查找,咱们可以用二分法
def findArray(arr, target):
"""
二分法进行二维数组查找
:param arr:
:param target:
:return:
"""
if len(arr) == 0:
return False
row = 0
col = len(arr[0])-1
while row < len(arr) and col >= 0:
if arr[row][col] == target:
return True
elif target > arr[row][col]:
row += 1
else:
col -= 1
return False
print(findArray([[1,7,12,32],[5,9,18,38],[9,13,19,41],[17,20,32,50]],50))
# True
搞定了,可能不是最优解。
个人觉得如果遇到算法题,这2题属于难度容易-中等之间(对于测试来说),要做到能现场手写,大家可以试试第一题不用工具库怎么实现
欢迎来到testingpai.com!
注册 关于