Problems › JavaScript › patterns
Did they type the letters in order
A command palette matches what someone typed against a command name: the letters have to appear in order, but not next to each other.
- Every character of the typed text must appear in the command, in the same order.
- Characters may be spread out — gaps in the command are fine.
- Typing nothing matches every command.
- Matching is exact, character for character; nothing is case-folded here.
typedInOrder(typed: string, command: string) → bool
Where you start
function typedInOrder(typed, command) {
}
Worked examples
| Call | Result |
|---|---|
typedInOrder("abc", "axbxc") | true |
typedInOrder("acb", "axbxc") | false |
typedInOrder("", "anything") | true |
typedInOrder("abc", "abc") | true |
Hint
One index walks the typed text, one walks the command. Advance the command index every step, and the typed index only when the two characters agree.
Reference solution in JavaScript
function typedInOrder(typed, command) {
let i = 0;
for (const ch of command) {
if (i < typed.length && typed[i] === ch) i += 1;
}
return i === typed.length;
}