雖然不是難題,但是我這個菜鳥還是寫了三個小時。
題目:小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長、寬和高。這樣,她就可以知道誰被誰搶了橡皮泥了。
小公尺老師在不同的學期可能會帶乙個班或者同時帶多個班,因此輸入資料可能有一組或者多組。每組輸入資料的第一行為乙個整數n,表示了這個班的小朋友數,之後n行每行包括了由空格分隔的三個整數和乙個字串,那個字串表示了小朋友的名字,前面三個整數則是這個學生手裡橡皮泥塊的長、寬、高資料。按照幼兒園的規定,每個班最多有9個小朋友,最少也要有2個小朋友,每個小朋友在學籍系統中的名稱不超過8個字元長。當出現乙個班級的小朋友數為-1時,表示沒有更多的班級了。
輸出行數與小公尺老師帶的班級數相同,形式為「x took clay from y.」,具體請參考樣例輸出。
解題**如下:
1#coding: utf-8
2"""
3__title__ = '泥塑課'
4__mtime__ = '15/12/31'
5__author__ = 'xueweihan'67
"""8910
defget_input():
11"""
獲取控制台輸入的值
12"""
13 _input =raw_input()
14 _input =str_to_int(_input)
15return
_input
1617
18def
str_to_int(str):
19try:20
return
int(str)
21except
exception as e:
22return
str23
2425
defprint_format(max_person, min_person):
26print
'%s took clay from %s.
' %(max_person, min_person)
2728
29class
student(object):
30def
__init__
(self, name, volume):
31 self.name =name
32 self.volume =volume
3334
35def
handle(input_data):
36"""
處理邏輯
37"""38#
gruop_list 存放的是不同班級的list
39 group_list =
4041
#class_list 存放的是乙個班級中student的物件
42 class_list =
4344
#i_index 和 e_index用於把每個班級的資料分出來
45 i_index =0
46for fi_input_list in
input_data:
47if
isinstance(fi_input_list, int):
48 e_index = i_index + fi_input_list + 1
49else:50
#通過切片分出每個班級的資料(因為每個班級的第乙個資料都是總數,不需要分析,故+1)
51for i in input_data[i_index+1:e_index]:52#
分析每個同學的資料
53 student_data_list =[str_to_int(fi_person_data)
54for fi_person_data in i.split('')]
5556 volume = student_data_list[0] * student_data_list[1] * student_data_list[2]
57 name = student_data_list[3]
5859
60 studnet =student(name, volume)
6162
63if
class_list:
6465 i_index =e_index66#
當分析完乙個班的資料之後,需要重新把class_list清空
67 class_list =
6869
#找出每個班級中volume最大和最小的student物件
70for fi_group_list in
group_list:
71 max_num = max([fi_class_list.volume for fi_class_list in
fi_group_list])
72 min_num = min([fi_class_list.volume for fi_class_list in
fi_group_list])
73 max_obj = filter(lambda x :x.volume ==max_num, fi_group_list)[0]
74 min_obj = filter(lambda x :x.volume ==min_num, fi_group_list)[0]
75print_format(max_obj.name, min_obj.name)
7677
78def
main():
79 input_list =
80while 1:
81 _input =get_input()
82if
isinstance(_input, int):83#
當遇到-1時結束
84if _input <0:
85handle(input_list)
86break
8788
89 main()
簡單題 泥塑課
題面 小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過 250250 立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬...
第6題 泥塑課
小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬和高。這樣,她就...
計蒜客 泥塑課
小公尺是乙個幼兒園老師,每學期的泥塑課上,她都會給每個學生發不超過250立方厘公尺的等量橡皮泥,教大家做泥塑。在上課過程中,她發現每個班都恰好有乙個小朋友會去搶另乙個小朋友的橡皮泥,於是她決定,在正式開始做泥塑前,讓大家把手裡的橡皮泥都捏成乙個立方體,並且測量手裡捏好的橡皮泥的長 寬和高。這樣,她就...