笔试时间为2019年4月13日,包括35道单选题、15道多选题、三道编程题。编程题如下:
第一题
给定两个字符串,请编写代码,输出最长公共字串(Longest Common Substring),是指两个字符串中的最长公共字串,要求字串一定是连续的。
输入描述
文本格式,2个非空字符串(字母数字组成),2个字符串以‘,’英文逗号分隔,字符串长度小于等于100
输出描述
整形,为匹配到的最长字串长度
分析
代码
if __name__ == "__main__":
a,b=list(input().split(','))
m=0
for i in range(len(a)):
for j in range(len(b)):
ii=i
jj=j
while(ii<len(a) and jj < len(b) and a[ii]==b[jj]):
ii+=1
jj+=1
m=max(m,jj-j)
print(m)
第二题
从0,1,2,…,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(N)尽可能的小。
输入描述
给定一个以逗号(,)分割的数字串
输出描述
输出缺失的数字
分析
代码
第三题
给定
输入描述
第一行一个整数t(1<=t<=5),表示测试用例组数。
对于每组测试用例:
第一行两个用空格隔开的整数n和m(1<=n,m<=100000),分别表示团体个数和关系数量。
接下来一行n个用空格隔开的数,第i个数表示val[i]。
接下来m行,每行三个用空格隔开的整数u,v和cost(u,v)(1<=u,v<=n,1<=val[i],cost(u,v)<=20000)
输出描述
输出
分析
代码
import sys
for line in sys.stdin:
A=set(map(int,line.split(',')))
s=sum(A)
print(len(A)*(len(A)+1)//2-s)