2016年华为面试题第一题
2017-05-19 18:55
218 查看
题目:
输入包括多组测试数据。
每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。
学生ID编号从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为’Q’的时候, 表示这是一条询问操作,他询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少
当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。
输入:
输出:
答案
输入包括多组测试数据。
每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。
学生ID编号从1编到N。
第二行包含N个整数,代表这N个学生的初始成绩,其中第i个数代表ID为i的学生的成绩
接下来又M行,每一行有一个字符C(只取‘Q’或‘U’),和两个正整数A,B,当C为’Q’的时候, 表示这是一条询问操作,他询问ID从A到B(包括A,B)的学生当中,成绩最高的是多少
当C为‘U’的时候,表示这是一条更新操作,要求把ID为A的学生的成绩更改为B。
输入:
5 7 1 2 3 4 5 Q 1 5 U 3 6 Q 3 4 Q 4 5 U 4 5 U 2 9 Q 1 5
输出:
5 6 5 9
答案
#!/user/bin/env python # -*- coding: utf-8 -*- information=input() N=int(information.split()[0]) #学生数 M=int(information.split()[1]) #操作数 chengji_string=input() chengji_list=[] #定义成绩列表 i=0 while i<N: chengji_list.append(int(chengji_string.split()[i])) i+=1 #M行操作数 f=0 shuchu_list=[] while f<M: operate_string=input() flag=operate_string.split()[0] A = int(operate_string.split()[1]) B = int(operate_string.split()[2]) if flag=='Q': tem_list=chengji_list[A-1:B] chengji_max=max(tem_list) shuchu_list.append(chengji_max) if flag=='U': chengji_list[A - 1] = B # 把数值B的成绩覆盖ID号A的成绩 f+=1 f1=0 while f1< len(shuchu_list): print(shuchu_list[f1]) f1+=1
相关文章推荐
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 2016年未腾讯,百度,华为,搜狗和滴滴面试题汇总(转)
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- [置顶] 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 2016年未,腾讯,百度,华为,搜狗和滴滴Android面试题
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总
- 华为面试题及答案(非标准)
- 华为的java面试题
- 华为一道c语言面试题
- 华为招聘--第一题
- 华为核心网 地点深圳 面试题
- 华为面试题:识别有效的ip地址和子网掩码并分类 C语言源码
- 华为面试题及参考答案
- 华为的一道面试题
- 华为专家面试题分享
- 【web前端面试题整理06】成都第一弹,邂逅聚美优品
- 那天在CSDN上看到一个网友在华为遇到的面试题是一道乘法题看似简其实并不是因为它们都超出了数据类型的范围,今天做了下加法希望对大家有所启示