通过率80%了,但是运行超时,不知道咋改了。
#include <queue> #include <string> #include <iostream> using namespace std; class Pet { public: string type; int id;//编号 int count;//顺序 Pet(string type,int id):type(type),id(id){} string getType() { return type; } int getId() { return id; } int getCount() { return count; } void setCount(int count) { this->count = count; } }; class Solution { private: queue<Pet> DogQueue; queue<Pet> CatQueue; int count = 0;//总数 public: void add(Pet p) { p.setCount(++count); if(p.getType() == "dog") { DogQueue.push(p); } else if(p.getType() == "cat") { CatQueue.push(p); } } void pollAll() { while(!(DogQueue.empty() && CatQueue.empty())) { if(DogQueue.empty()) { cout << CatQueue.front().getType() << " " << CatQueue.front().getId() << endl; CatQueue.pop(); } else if(CatQueue.empty()) { cout << DogQueue.front().getType() << " " << DogQueue.front().getId() << endl; DogQueue.pop(); } else { if(DogQueue.front().getCount() < CatQueue.front().getCount()) { cout << DogQueue.front().getType() << " " << DogQueue.front().getId() << endl; DogQueue.pop(); } else { cout << CatQueue.front().getType() << " " << CatQueue.front().getId() << endl; CatQueue.pop(); } } } } void pollDog() { while(!DogQueue.empty()) { cout << DogQueue.front().getType() << " " << DogQueue.front().getId() << endl; DogQueue.pop(); } } void pollCat() { while(!CatQueue.empty()) { cout << CatQueue.front().getType() << " " << CatQueue.front().getId() << endl; CatQueue.pop(); } } bool isEmpty() { return DogQueue.empty() && CatQueue.empty(); } bool isDogEmpty() { return DogQueue.empty(); } bool isCatEmpty() { return CatQueue.empty(); } }; static Solution obj; int main() { int n;//操作总数 int id;//宠物编号 string s;//操作名 string type;//宠物类型 cin >> n; while(n--) { cin >> s; if(s == "add") { cin >> type; cin >> id; obj.add(Pet(type,id)); } else if(s == "pollAll") { obj.pollAll(); } else if(s == "pollDog") { obj.pollDog(); } else if(s == "pollCat") { obj.pollCat(); } else if(s == "isEmpty") { if(obj.isEmpty()) { cout << "yes" << endl; } else { cout << "no" << endl; } } else if(s == "isDogEmpty") { if(obj.isDogEmpty()) { cout << "yes" << endl; } else { cout << "no" << endl; } } else if(s == "isCatEmpty") { if(obj.isCatEmpty()) { cout << "yes" << endl; } else { cout << "no" << endl; } } } return 0; }
全部评论
(0) 回帖