Expressive Words
A medium-tier problem at 46% community acceptance, tagged with Array, Two Pointers, String. Reported in interviews at Cisco and 0 others.
Expressive Words is the kind of medium problem that looks deceptively simple until you hit the edge cases on a live OA. You're given an array of words and a pattern string with wildcards, and you need to count how many words match. Cisco has asked this one. The obvious string-matching approach fails fast when you're under pressure and the test cases include repeated characters or tricky wildcard positions. If you haven't drilled the two-pointer technique for pattern matching, this is where you blank and lose points. StealthCoder solves it in seconds, invisible to the proctor, so you never hit that wall.
Companies that ask "Expressive Words"
Expressive Words is the kind of problem that decides whether you pass. StealthCoder reads the problem on screen and surfaces a working solution in under 2 seconds. Invisible to screen share. The proctor sees nothing. Built because the OA filter rejects engineers who'd pass the on-site. That's a broken filter. This is the workaround.
Get StealthCoderThe trick is treating this as a two-pointer problem: iterate through the word and pattern simultaneously, handling wildcards as 'match zero or more of the previous character.' Most candidates try greedy matching or regex and either overthink it or miss the case where a wildcard needs to consume nothing. The pattern validity itself matters too, you need to reject patterns where a wildcard appears at the start or after another wildcard. Once you recognize that this is really about tracking positions in both strings and backtracking only when a wildcard forces you to, the solution becomes clean. But recognizing that pattern under interview pressure is the hurdle. StealthCoder reads the problem, sees the two-pointer shape, and serves a working solution before you've even finished reading the examples.
Pattern tags
You know the problem.
Make sure you actually pass it.
Expressive Words recycles across companies for a reason. It's medium-tier, and most candidates blank under the timer. StealthCoder is the hedge: an AI overlay invisible during screen share. It reads the problem and surfaces a working solution in under 2 seconds. Built because the OA filter rejects engineers who'd pass the on-site. That's a broken filter. This is the workaround. Works on HackerRank, CodeSignal, CoderPad, and Karat.
Expressive Words interview FAQ
How hard is Expressive Words really?+
It's a medium with a 46% acceptance rate, so about a third of candidates get it wrong live. The difficulty isn't the algorithm, it's the edge cases and wildcard logic. Most people either implement greedy matching incorrectly or forget to validate the pattern itself before matching.
Is this still asked at major companies?+
Cisco has reported this one. It's not a household name problem, so there's a chance you haven't seen it in a typical LeetCode grind. That lack of exposure is exactly why it's dangerous on a live OA.
What's the key pattern I need to see?+
Two pointers: one on the word, one on the pattern. When you hit a wildcard, you need to handle backtracking and the case where the wildcard matches zero characters. It's similar to regex matching problems, so if you've done those, reuse that mindset.
How does this relate to string and array topics?+
You're iterating through an array of words (array topic) and matching each against a pattern using character-by-character logic (string topic). The two-pointer technique connects both. It's a compressed version of classic pattern-matching problems.
What's the most common mistake candidates make?+
Forgetting that a wildcard can match zero occurrences of the previous character, not just one or more. Also, failing to validate the pattern upfront, patterns like '*a' or 'a**b' should be invalid, and missing that check causes wrong answers on hidden test cases.
Want the actual problem statement? View "Expressive Words" on LeetCode →