題目描述
有家動物收容所只收留貓和狗,但有特殊的收養規則,收養人有兩種收養方式,第一種為直接收養所有動物中最早進入收容所的,第二種為選擇收養的動物型別(貓或狗),並收養該種動物中最早進入收容所的。
給定乙個操作序列int[2] ope(c++中為vector>)代表所有事件。若第乙個元素為1,則代表有動物進入收容所,第二個元素為動物的編號,正數代表狗,負數代表貓;若第乙個元素為2,則代表有人收養動物,第二個元素若為0,則採取第一種收養方式,若為1,則指定收養狗,若為-1則指定收養貓。請按順序返**養的序列。若出現不合法的操作,即沒有可以符合領養要求的動物,則將這次領養操作忽略。
測試樣例:
[[1,1],[1,-1],[2,0],[2,-1]]
返回:[1,-1]
solution:
# -*- coding:utf-8 -*-
class catdogasylum:
def asylum(self, ope):
animals =
cats,dogs = 0,0
res =
for op in ope:
if op[0]==1:
if op[1]>0:
dogs += 1
else:
cats += 1
else:
if op[1]==0:
if len(animals)==0:
continue
temp = animals.pop(0)
if temp[0]==1:
dogs -= 1
else:
cats -= 1
elif op[1]==1:
if dogs==0:
continue
dogs -= 1
for i in range(len(animals)):
if animals[i][0]==1:
break
else:
if cats==0:
continue
cats -= 1
for i in range(len(animals)):
if animals[i][0]==0:
break
return res
一遍過,超得意 貓狗收容所
有家動物收容所只收留貓和狗,但有特殊的收養規則,收養人有兩種收養方式,第一種為直接收養所有動物中最早進入收容所的,第二種為選擇收養的動物型別 貓或狗 並收養該種動物中最早進入收容所的。給定乙個操作序列int 2 ope c 中為vector 代表所有事件。若第乙個元素為1,則代表有動物進入收容所,第...
貓狗收容所
題目描述 有家動物收容所只收留貓和狗,但有特殊的收養規則,收養人有兩種收養方式,第一種為直接收養所有動物中最早進入收容所的,第二種為選擇收養的動物型別 貓或狗 並收養該種動物中最早進入收容所的。給定乙個操作序列int 2 ope c 中為vector 代表所有事件。若第乙個元素為1,則代表有動物進入...
貓狗收養所
有家動物收容所只收留貓和狗,但有特殊的收養規則,收養人有兩種收養方式,第一種為直接收養所有動物中最早進入收容所的,第二種為選擇收養的動物型別 貓或狗 並收養該種動物中最早進入收容所的。給定乙個操作序列int 2 ope c 中為vector 代表所有事件。若第乙個元素為1,則代表有動物進入收容所,第...