Todo Task Manager Operations
Reported by candidates from Cisco's online assessment. Pattern, common pitfall, and the honest play if you blank under the timer.
The mistake that sinks a first attempt on this Cisco OA, reported in October 2026, is treating it like a hard algorithm problem when it's a bookkeeping problem. Todo Task Manager Operations gives you up to 10^5 CREATE, READ, UPDATE_TITLE, UPDATE_STATUS and DELETE calls and wants one result string per call, in order. There's no clever trick. Points go to the people who read the edge cases carefully and don't ship a sloppy status check. If you blank on the structure, StealthCoder runs invisibly on your screen during the live OA as a safety net.
The problem
Process a finite ordered sequence of todo-task operations. Each task has a unique integer ID, a title, and one status: new, pending, or resolved. ["CREATE", id, title] creates a task with status new and returns OK, or EXISTS if the ID is already present. ["READ", id] returns id|title|status, or NOT_FOUND. ["UPDATE_TITLE", id, title] and ["UPDATE_STATUS", id, status] return OK on success or NOT_FOUND. An invalid status returns INVALID_STATUS without changing the task. ["DELETE", id] removes the task and returns OK, or NOT_FOUND. Return one result for every operation in input order. Function manageTasks(operations: String[][]) → String[] Examples Example 1 operations = [["CREATE","7","Ship release"],["READ","7"],["UPDATE_STATUS","7","pending"],["READ","7"],["DELETE","7"],["READ","7"]] return = ["OK","7|Ship release|new","OK","7|Ship release|pending","OK","NOT_FOUND"] The task is created, updated, read in both states, deleted, and then no longer exists. Example 2 operations = [["CREATE","1","Draft"],["CREATE","1","Again"],["UPDATE_STATUS","1","closed"],["READ","1"]] return = ["OK","EXISTS","INVALID_STATUS","1|Draft|new"] A duplicate create and an invalid status leave the original task unchanged. Constraints 1 <= operations.length <= 10^5. Task IDs are non-negative 32-bit integers encoded as decimal strings. Titles are non-empty and do not contain |. Every operation has the exact arity described above.
Reported by candidates. Source: FastPrep
Pattern and pitfall
The pattern is a hash map keyed by task ID, with each value holding title and status. Every operation is O(1), so 10^5 operations is trivial. The hint says queue, but the only queue-like part is that you process operations in order and append one result per operation. The pitfalls are all in the details. CREATE on an existing ID returns EXISTS and must not overwrite the original. UPDATE_STATUS must check the task exists and validate the status. Decide which check comes first, and note the spec says an invalid status leaves the task untouched. Only new, pending and resolved are valid, and they're case-sensitive as written. READ formats as id|title|status with no spaces. Keep IDs as strings so you don't mangle anything. If the live OA rattles you, StealthCoder can hand you the clean map solution so you only have to verify the edge cases.
StealthCoder is the hedge for the one pattern you didn't drill. It runs invisibly during the screen share.
You can drill Todo Task Manager Operations cold, or you can hedge it. StealthCoder runs invisibly during screen share and surfaces a working solution in under 2 seconds. The proctor sees the IDE. They don't see what's behind it. If you're reading this with an OA window open, you're who this was built for.
Get StealthCoderRelated leaked OAs
You've seen the question.
Make sure you actually pass Cisco's OA.
Cisco reuses patterns across OAs. If you're reading this with an OA window open, you're who this was built for. Works on HackerRank, CodeSignal, CoderPad, and Karat.
Todo Task Manager Operations FAQ
How hard is the Cisco Todo Task Manager Operations OA really?+
Easy on algorithms, unforgiving on details. It's a hash map simulation with five operation types. Most failures come from wrong return strings, overwriting on duplicate CREATE, or mishandling invalid status. If you write it carefully and test both examples, you should pass.
What's the trick to this problem?+
Use a map from ID to a small record of title and status. Loop through operations, branch on the first element, and append exactly one result string each time. Never mutate state on a failed operation. That's the whole solution.
What happens when UPDATE_STATUS gets an invalid status on a missing task?+
The spec lists NOT_FOUND for a missing task and INVALID_STATUS for a bad status on an existing one. A missing ID is the more fundamental failure, so check existence first, then validate the status. Either way, make sure nothing changes.
Do I need a queue for this one?+
Not really. Operations are processed in input order, so a plain loop works, and results go into a list. A hash map holds the task state. Don't overbuild with extra data structures, they only add bugs.
How do I prepare for this in 48 hours?+
Write it once from scratch in your language of choice and run both examples. Then add your own tests: duplicate create, delete then read, delete then create the same ID again, and an invalid status. Check your output formatting character by character.