2020美团秋招笔试记录

题型:选择40+简答+编程2个

编程1:字符串排序
按照字母的逆序排序

import sys

def reve(char):
    addtion = ord(char)-ord('a')
    return chr(ord('a')+26-addtion)
def map(word):
    return ''.join(reve(char) for char in word)

if __name__ =='__main__':
    words = sys.stdin.readline().strip().split(',')
    print(','.join(sorted(words,key=map)))

waimai,dache,lvy,meip
waimai,meip,lvy,dache

编程2:最长公共前缀
有最大长度十万的多个字符串,任意给两个字符串编号,返回这两个字符串的最长公共前缀长度。


import sys

def getlens(slist,a,b):
    lens,p=0,0
    if not slist[a] or not slist[b]:
        return 0
    while p < len(slist[a]) and p < len(slist[b]) and slist[a][p] == slist[b][p]:
        p+=1
        lens+=1
    return lens


n = int(sys.stdin.readline().strip())
slist = []
for _ in range(n):
    slist.append(sys.stdin.readline().strip())

for line in sys.stdin:
    index = list(map(int,line.strip().split()))
    if index[0]>n or index[1]>n or index[0]<1 or index[1]<1:
        print('')
    else:
        lens =getlens(slist,index[0]-1,index[1]-1)
        print(str(lens))

2020美团秋招笔试记录

上一篇:处理ip,java判断ip是否在指定的ip段范围内,给定的ip地址是否在某个ip段范围内,将字符串形式IP地址转换long类型


下一篇:linux – 为什么剥离的二进制文件仍然可以在反汇编文件中拥有库调用信息?