def pra_01(self):
# 给你一个整数数组nums ,其中元素已经按升序排列,请你将其转换为一棵高度平衡
# 二叉搜索树。高度平衡
# 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1 」的二叉树。
nums = [1,2,3,4,5]
def pra_02(self):
# 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
str = 'Aabffbaa'
if str.lower() == str[::-1].lower():print('yes')
def pra_03(self):
# 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
# 说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?
nums = [1,2,2,3,3]
result = 0
for num in nums:result = result ^ num
print(result)
def pra_04(self):
# 给定一串字符串,找出出现次数最多的字符
s = 'abcabbba'
d = {}
for i in s:
if i not in d:
d[i] = 1
else:
d[i] = d[i] + 1
m = max(d.values())
for k,v in d.items():
if v == m:
print(k)
# 给定一串字符串,找出没有重复字符的最长子串
def find():
l = 'java2novice'
t_list = []
# 找出所有子串
for i in range(len(l)):
for j in range(1, len(l)):
t_list.append(l[i,j])
print(t_list)
# 遍历子串,排除所有包含重复字符的子串
res_list = []
for t in t_list:
num = 1
for c in t:
if t.count(c) >= 2:
num = 0
if num != 0:
res_list.append(t)
# 输出满足条件子串中长度最长的子串
print(max(res_list,key=len))
测试岗位面试常见算法题集锦
于 2022-07-13 18:06:08 首次发布