P-7.4 Timed Practice: Arrays, Strings and Hashing
Timed practice over the data structures module, at screening depth — written September 2026
What this is and why it exists
This is the largest question area in a first round, and the one where speed is built rather than learned.
The structures were taught in the data structures module. This is that same material under a clock, at the depth a screening round actually sets. That depth stops well short of the competitive-programming versions.
Work it in the language you named as your first skill. Funcognito writes no questions of its own, so every practice set named here belongs to somebody else and is named as theirs.
The vocabulary
- Screening depth — the level a first round sets, below competitive programming.
- In place — modifying the input without making a second copy.
- Counting question — one answered by recording how often things appear.
- Error log — one line per mistake: the question, the mistake, the fix.
- Slow but right — an area you get correct and cannot finish in time.
The mental model
Start with the clock, not with the theory. Set a timer for twenty minutes and work three array questions from start to tested answer. Three in twenty is roughly the pace a screening test sets. The first attempt is meant to feel impossible. The point is not the score; it is finding out where the time actually went.
String questions are array questions with a different name. The extra difficulty is usually memory rather than logic — reversing, counting characters, comparing without making a second copy. Doing them in place is what an interviewer follows up on, so practise them that way from the start rather than adding it later.
Write one counting question twice: once by scanning, once with a hash table, and time both. The slow version is not wasted work. It is the version you fall back on when the clock runs out, and having written it once means you can write it fast. Timing both also makes the improvement a measurement rather than a belief.
Then take a timed set, and mark the areas you were slow on rather than the ones you got wrong. This is the instruction people skip and it matters. Speed and accuracy fail differently and need different practice. An area you get right and cannot finish costs more marks under a real clock than one you occasionally get wrong.
Keep an error log: the question, the mistake, the fix, one line each. Most errors repeat, and the log shows which three reasons account for most of yours. It is the same page that works for the aptitude paper, pointed at code instead.
What you should now be able to explain or do
Work three array questions to tested answers inside twenty minutes. Treat string questions as array questions and do them in place. Write a counting question both ways and time both. Distinguish slow-but-right areas from wrong ones, and practise them differently. Keep an error log and name the three reasons behind most of your mistakes.
Check yourself
Why is the first timed set meant to feel impossible?
Because its purpose is to show where the time goes, not to produce a score. The pace is what you are measuring against.
What is the extra difficulty in string questions?
Memory rather than logic. Doing the work in place, without a second copy, is what an interviewer follows up on.
Why write the slow version of a counting question at all?
It is your fallback when the clock runs out, and timing both makes the improvement a measurement rather than a belief.
Why mark slow areas rather than wrong ones?
They fail differently. An area you get right but cannot finish costs more marks under a real clock than an occasional error.
What does the error log give you that a score does not?
The reasons. Most mistakes repeat, and three reasons usually account for most of them, each needing a different fix.
Go deeper
We haven't checked most of these for screen reader use yet.
Back to Timed Practice: Arrays, Strings and Hashing: work through the checklist