貓狗收容所

2022-04-17 05:37:00 字數 1179 閱讀 8447

題目描述

有家動物收容所只收留貓和狗,但有特殊的收養規則,收養人有兩種收養方式,第一種為直接收養所有動物中最早進入收容所的,第二種為選擇收養的動物型別(貓或狗),並收養該種動物中最早進入收容所的。

給定乙個操作序列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,則代表有動物進入收容所,第...