【华为云计算开发岗笔试题】2020秋招华为第一次笔试

it2024-03-29  55

问题一

公司委派几名项目经理组织发传单,项目经理委派组员发传单,组员管理外包人员,外包人员发送传单。每个外包人员当天下班后上报发送传单的数量;请完成项目经理、组员、外包人员当天完成传单数的统计; 并按照如下格式的树形结构输出项目经理、组员、外包人员发送的传单数量。

输入描述: performance块表示每名外包人员发送的传单数量,每行一个外包人员,输入格式为:外包人员,传单数。 organization块表示项目经理、组员和外包人员的从属关系,输入格式为:经理、组员、外包人员。

输出描述: 项目经理<传单数> -组员<传单数> –外包人员<传单数>

组员前面用单减号’-’,外包人员前面用双减号’–’;输出每一行的行尾使用换行符’\n’,不包含其他任何空白字符;不包含空白行。;

项目经理->组员->外包依次按传单数量降序排列,如果传单数量一样,按照名字升序排序。

示例:

输入 performance Adam,125 Andy,110 Bill,92 Evan,154

organization Aaron,Abel,Adam Aaron,Abel,Andy Aaron,Jone,Bill Aaron,Jone,Evan eof

输出 Aaron<481> -Jone<246> –Evan<154> –Bill<92> -Abel<235> –Adam<125> –Andy<110>

备注 外包人员总数不会超过100个; 不会出现一个外包人员被不同组员管理的情况,也不会出现一个组员属于不同项目经理的情况; 每名外包人员最大发送传单数不超过1000;

问题二

一次完整的基因测序流程其实是由很多小任务组成的。任务之间又是有顺序要求的,也就是某个任务需要依赖其他任务先完后自己才能开始执行。例如c:[a:b]表示,c任务亿来a任务,也依b任务,也就是a执行完,且b任务执行完后,才能执行c。 同时基因测序的每个小任务都有自己的运行时长,没有依赖关系的任务可以同时执行。b:[a]:3表示:b任务依赖a任务,并且b任务的运行时长是3分钟。此外,由于计算资源有限,任务在执行的时候室友并发限制的,即最大可同时执行的任务数量有限制。比如当最多只能同时跑2个任务时,由于资源不足的任务,只能等前面的任务跑完才能跑。注:如果有同时可以跑的任务,先按先来后到,然后字母序优先处理。

例如b:[a]:3/2表示b任务依赖a任务,且b任务运行耗时3分钟。最大并发数为2。考题:给你一个基因测序流程以及最大并发数量,请给出运行此流程的总时间。

输入描述 用分号分隔的多个依赖关系的描述,及用斜杠分隔的并发数。

输出描述 总运行时间

示例1

输入 b:[a]:2;c:[a]:3;a:[]:1/1

输出 6

示例2

输入 h:[e,f,g]:2;e:[b]:6;f:[c]:6;g:[d]:6;b:[a]:5;c:[a]:5;d:[a]:5;a:[]:3/2

输出 22

说明 自己先取数输入中的空格等不可见字符(仅为防止意外,用例本身是不会带空格的)。任务名不会超过64字符,任务数不超过100。每个任务数是原子的,启动后不能终止直到完成。

问题三 下面是一个9宫格,在任意一个格子上,可以选择向上、下、左、右移动一步,或者原地不动。红色的线表示相邻2个数之间有障碍物,箭头方向表示不能沿着指示的方向移动;红色的圆圈表示不能再该数字上原地不动。例如1和2之间的障碍,表示不能由1向右移动一步到2;7和8之间的障碍表示2个方向都不能移动;数字4上的圆圈表示只能在数字4上选择向上、下、左、右移动,不能原地不动。给定一个正整数N,你可以选择从任意一个格子出发,使得经过N步移动(包含原地不动,并且有可能无法完整移动N步)后得到的路径上的点连起来的数最大。例如N等于1,沿着路径8->9,得到最大的数是89;给定N等于2,沿着路径8->8->9得到最大的数是889。 输入描述: 第一行一个数字M(M >= 0)表示障碍物总数(包括圆圈),随后M行,每一行右两个正整数P和Q,用空格分开,表示从P不能移动到Q(P等于Q时,表示不能原地不动)。 紧随其后的最后一行是给定的一个正整数N表示移动的步数N。输入保证连起来得到的最大数小于2^64。

输出描述 输出一行得到的最大数

示例 输入 8 1 2 4 4 7 8 8 5 8 7 9 6 9 8 9 9 2

输出 889

最新回复(0)