
Implement a function that ignores spacing, punctuation, and case, then checks whether input reads the same forward and backward. Include a tiny test harness with a few clear examples. Constrain yourself to five minutes. If you finish early, add Unicode-aware cases or streaming checks. The repetition cements string handling, normalization habits, and disciplined verification under gentle time pressure.

Count occurrences of characters or words from a short snippet. Output the top three frequencies with ties resolved alphabetically. This encourages hash map practice, sorting with custom keys, and predictable formatting. Keep data small so completion stays realistic. Repeat across languages or standard libraries to learn idiomatic ways to build, merge, and display counts with minimal ceremony and maximum clarity.

Given an array and window size, compute the sum for each sliding window efficiently. Focus on updating the running total rather than recalculating from scratch. This drill reinforces off-by-one awareness and boundary safety. If time remains, extend to minimum or maximum using a deque. Five minutes urges decisive structure choices without sacrificing correctness or readability.
Implement a queue using two stacks or a stack using two queues. Keep code compact, naming crisp, and operations amortized. Verify with a few quick enqueues, dequeues, and underflow checks. The five-minute clock forces you to commit to a workable interface quickly, reason about time complexity, and deliver a small but complete unit that teaches discipline and compositional thinking.
Transform a map into a list of key–value pairs sorted by value then key. Decide on a stable strategy, implement clean comparators, and print results predictably. This everyday pattern trains careful ordering semantics, reinforces iteration mechanics, and discourages ad-hoc hacks. Done regularly, you gain speed turning raw associations into ordered insights suitable for logs, reports, or quick diagnostics.
Given a sorted array, find two numbers that add to a target using left and right pointers. Code the loop, handle duplicates gracefully, and stop early on success. The constraint keeps scope narrow yet authentic. You practice termination conditions, invariant thinking, and guardrails against index errors—details that elevate reliability when seconds matter and distractions inevitably appear.
All Rights Reserved.