面试题汇总

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))
答案

 

 

 

posted @ 2018-12-29 17:18  烧刘病  阅读(140)  评论(0编辑  收藏  举报
回到页首