您的位置:首页 > 编程语言

处理sys数据,简要回归2018校招当当的一道编程题

2017-11-26 14:15 405 查看
前两天,题主做了下当当的校招编程题,发现当当用的编译器不支持在线debug,而自己又没掌握sys的处理输入数据,自己错失第一题的良机。第一题可简单了,今天痛心疾首的给弄出来了,警醒自己,也给大家分享下。当当的线上编程题和其他互联网公司一样,都是给一大段文字,后面引出重点:
输入两行数据,
第一行是一个数列的长度,第二行是此数列,以空格分开,要求找出最大插值和有几组这样的数
例:5
1 2 3 3 1
返回结果为 2 4
思路:先把数列排序,计算出最大值,然后找出有几个最值即可
import syswhile 1:a = sys.stdin.readline().strip()    #strip()去除字符串首尾多余的字符(默认是空格)b = sys.stdin.readline().strip()if a == None or b == None:breaka = a.split(' ')    #因为sys读的数据都是以字符读入,需要按空格分开b = b.split(' ')    #b列表需要转化为数字列表b_list = []for _ in b:b_list.append(int(_))b_list.sort()max_diff = b_list[-1] - b_list[0]value_min,value_max = 0,0for i in b_list:if i == b_list[-1]:value_max += 1if i == b_list[0]:value_min += 1print max_diff,value_max * value_min   
注意要点:
1.在这里,sys处理数据时,需要两两处理,这里就需要读两次,还要加上跳出条件;
2.sys.stdin.readline(),一行一行的读;
3.print的输出不是空格间隔,以逗号区分每个输出的值;
4.在pycharm中用sys时,在run窗口输入两行数据就可以处理了。
欢迎批评指4000正!
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: