农行(浙江省分)笔试-1027
笔试内容:3道编程题,medium难度,用的********平台,核心代码模式,语言自选(python ,java,c等都可),不能使用本地IDE,只能在线输出调试。在时间范围内作答即可,每个人的试卷应该都不一样的,说一下大致考察内容和难度,给往后的兄弟们一点借鉴。
题目1:组合问题,第一题没A,只过了大概28%左右(提示:超出时间限制,感觉思路没啥问题)
求能组成的稳定卡牌组(卡牌组中最小值和最大值相加小于等于K)的数量
class Solution: #考场上的写法,超出时间限制了,但只过了28%左右,感觉思路没啥问题 def numStableCards_test(self, power, k): power.sort() res=0 n=len(power) def traceback(start,path): nonlocal res if len(path)>0: if path[0]+path[-1]>k: return else: res+=1 for i in range(start,n): if power[i]>=k: break traceback(i+1,path+[power[i]]) traceback(0,[]) print(res) return res%(10**9+7) #新思路,应该没有问题 def numStableCards(self, power, k): power.sort() res=0 n=len(power) for i in range(n): if 2*power[i]>k: break else: res += 1 #单牌满足 flag=False for j in range(i+1,n): if power[i]+power[j]>k: flag=True break #print(i,j,flag) if flag: num=j-1-i else: num=j-i res+=2**num-1 print(res) return res%(10**9+7) if __name__=='__main__': solution=Solution() power=[3,4,4,5,7,8] k=12 # power=[2,4,5,6] # k=7 # power = [2, 2, 4, 7] # k= 8 # power=[3,6,9] # k=12 solution.numStableCards(power,k)题目2:给了有向图中的边,求图中出度为0的结点
比如:A->B,B->C,C->D, 返回:D
题目3:给了一个字符串,字符串中只含有小写英文字母,求最长递增序列(要求字母序列连续且递增,比如"abc","bcde","xyz"等)的长度,比如"adcadcda"返回2,"amnhjkxyz"返回3