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

来源:互联网 发布:网络智能电视环绕声 编辑:程序博客网 时间:2024/06/05 20:31

前两天,题主做了下当当的校招编程题,发现当当用的编译器不支持在线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:        break    a = 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,0    for i in b_list:        if i == b_list[-1]:            value_max += 1        if i == b_list[0]:            value_min += 1    print max_diff,value_max * value_min   

注意要点:
1.在这里,sys处理数据时,需要两两处理,这里就需要读两次,还要加上跳出条件;
2.sys.stdin.readline(),一行一行的读;
3.print的输出不是空格间隔,以逗号区分每个输出的值;
4.在pycharm中用sys时,在run窗口输入两行数据就可以处理了。
欢迎批评指正!

原创粉丝点击