Hacker News new | ask | show | jobs
by behdad 1163 days ago
Imagine the string "there is", and the dictionary {"the", "there", "is"}.
1 comments

T isn’t a word, next

Th isn’t a word, next

The is a word, look up ‘reis’, not a word, next

Ther isn’t a word, next

There is a word, look up ‘is’ it is a word, return true

If you don’t want to ignore whitespace, than I’m not sure what behavior you want, you want “there is” to return false?

If whitespace is the delimiter the whole thing is trivial, you split on space.

I am now more confused.

> The is a word, look up ‘reis’, not a word, next

This is where the wrong greedy solution from TFA, which the author claims some candidates reach, stops. So it's wrong.

Note that if you do not stop, and continue as in your own example, your solution isn't "greedy"!

That is a correct solution. The one I was talking about would stop after just trying "The" and "reis".
Anyway, don’t you get a savings by using some data structure that indexes the dictionary by word length first?

Or at least sorting by.

Ok
This guy has a massive ego. Glad I do not work at Google.