海投Akuna的Python Junior Dev,新鲜面筋。3道题,160分钟。没有选择题。
第一题,validation account number,标准输入是八位字符串,分成前两位和后六位。后六位要hex转decimal,然后所有数位上的数加和,再转成hex,看是否和前两位一样,一样则是valid。tricky的地方在如果直接用python的int转16位,不能handle一些runtime error
第二题,计算地球上两点间距离,题中给了球面计算公式。标准输入有两种,LOC开头的字符串后接地点名称,lat,lon;
TRIP开头的字符串后接订单确认号,地点名1,地点名2。要求接收到TRIP开头的字符串就输出计算出的两地相距距离。可参
考:https://medium.com/@petehouston/calculate-distance-of-two-locations-on-earth-using-python-1501b1944d97 中的The Great-Circle Distance
第三题,longest trip。标准输入是两个城市名和它们之间的距离,要求输出三个城市(即两段城市间距离加和,第一段的到达城市必须是第二段的起始城市)的最大距离(如果现有memory里少于3个城市则输出None)。大概想法就是自定义一个data structure,可一直接收输入新的城市和距离,然后返回最大的两段加和
总体来说不难,时间也够,感觉主要是考implementation