面试题汇总
1.回文代码
s='上海自来水水来自海上'
if s==s[::-1]:
print('Yes')
else:
print('Not')
2.元组类型
# tu=(123)
# tu1=(123,)
# print(type(tu),type(tu1))#<class 'int'> <class 'tuple'>,有无逗号很关键,没有逗号只有一个数据,其数据类型就是其本身
# tu=(True)
# tu1=(True,1)
# print(type(tu),type(tu1))#<class 'bool'> <class 'tuple'>
# tu=('h')
# tu1=('h',)
# tu2=(int(True))
# print(type(tu),type(tu1),type(tu2))#<class 'str'> <class 'tuple'> <class 'int'>
3.
# 面试题 # a=10,b=20,一行代码实现a=20,b=10 a=10 b=20 a,b=b,a print('a=%d,b=%d'%(a,b))
4.
# 面试题 # 用for循环删除列表中的元素 # li=[1,2,3,4,5] # l=[] # for i in li: # l.append(i) # for j in l: # li.remove(j) # print(li) #[] # li=[1,2,3,4,5] # for i in range(len(li)): # li.pop() # print(li) #[]
5.
# 面试题 #一行代码实现s='1111',转变成list s='1111' print(s.split())#['1111']
6.
a = [1, 2] a[1] = a #a=[1,[1,2]] a=[1,[1,[1,2]]] a==[1,[[1,[1,[1,2]]]]] ... print(a[1])#[1, [...]]
7.生成器面试题
def add(n,i):
return n+i
def test():
for i in range(4):
yield i
g=test()
for n in [1,10]:
g=(add(n,i) for i in g)
print(list(g))
# 1.g是一个生成器,不调用则不会执行
# 2.进入for循环
# n=1
# g1=(add(n,i) for i in g)
# n=10
# g2=(add(n,i) for i in g1)
# g1是一个生成器
# g2是一个生成器
# 3.执行了list(g2)则调用g2
# g2中for i in g1
# 调用了g1
# 此时n=10
# 调用g1,g1中有for循环调用g
# g=[0,1,2,3]
# g1=[10,11,12,13]
# 继续调用g1
# g2=10+g1
# 所以list(g2)=[20,21,22,23]
8.
输入'abab' 输出 True 样例解释:输入可由ab重复2次组成 输入'aba' 输出False
def get_lst(s): # 得到列表 s=','.join(s) return s.split(',') def get_factor(s): # 得到因子 new_s = ','.join(s) s_lst = new_s.split(',') # 得到有由什么组成的 s_lst = list(set(s_lst)) # 排序 s_lst = sorted(s_lst) # 得到组成字符串的因子 s_res = ''.join(s_lst) return s_res s_lst=get_lst(s) factor=get_factor(s) def func(factor,s_lst): '''得到最终结果''' last_cod=factor[-1] for i in range(len(s_lst)): if s_lst[i]==last_cod: s_lst[i]+='|' resust=''.join(s_lst) resust_lst=resust.strip('|').split('|') num=0 for i in resust_lst: if i==factor: num+=1 else: return False return (True,f'输入是由{factor}重复"{num}"次组成的') print(func(factor,s_lst))

浙公网安备 33010602011771号