列表

详情


2590. 设计一个待办事项清单

设计一个待办事项清单,用户可以添加 任务 ,标记任务为 完成状态 ,或获取待办任务列表。用户还可以为任务添加 标签 ,并可以按照特定标签筛选任务。

实现 TodoList 类:

 

示例 1 :

输入
["TodoList", "addTask", "addTask", "getAllTasks", "getAllTasks", "addTask", "getTasksForTag", "completeTask", "completeTask", "getTasksForTag", "getAllTasks"]
[[], [1, "Task1", 50, []], [1, "Task2", 100, ["P1"]], [1], [5], [1, "Task3", 30, ["P1"]], [1, "P1"], [5, 1], [1, 2], [1, "P1"], [1]]
输出
[null, 1, 2, ["Task1", "Task2"], [], 3, ["Task3", "Task2"], null, null, ["Task3"], ["Task3", "Task1"]]

解释
TodoList todoList = new TodoList(); 
todoList.addTask(1, "Task1", 50, []); // 返回1。为ID为1的用户添加一个新任务。 
todoList.addTask(1, "Task2", 100, ["P1"]); // 返回2。为ID为1的用户添加另一个任务,并给它添加标签“P1”。 
todoList.getAllTasks(1); // 返回["Task1", "Task2"]。用户1目前有两个未完成的任务。 
todoList.getAllTasks(5); // 返回[]。用户5目前没有任务。 
todoList.addTask(1, "Task3", 30, ["P1"]); // 返回3。为ID为1的用户添加另一个任务,并给它添加标签“P1”。 
todoList.getTasksForTag(1, "P1"); // 返回["Task3", "Task2"]。返回ID为1的用户未完成的带有“P1”标签的任务。 
todoList.completeTask(5, 1); // 不做任何操作,因为任务1不属于用户5。 
todoList.completeTask(1, 2); // 将任务2标记为已完成。 
todoList.getTasksForTag(1, "P1"); // 返回["Task3"]。返回ID为1的用户未完成的带有“P1”标签的任务。 
                                  // 注意,现在不包括 “Task2” ,因为它已经被标记为已完成。 
todoList.getAllTasks(1); // 返回["Task3", "Task1"]。用户1现在有两个未完成的任务。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class TodoList { public: TodoList() { } int addTask(int userId, string taskDescription, int dueDate, vector<string> tags) { } vector<string> getAllTasks(int userId) { } vector<string> getTasksForTag(int userId, string tag) { } void completeTask(int userId, int taskId) { } }; /** * Your TodoList object will be instantiated and called as such: * TodoList* obj = new TodoList(); * int param_1 = obj->addTask(userId,taskDescription,dueDate,tags); * vector<string> param_2 = obj->getAllTasks(userId); * vector<string> param_3 = obj->getTasksForTag(userId,tag); * obj->completeTask(userId,taskId); */

上一题