I remember there was this one time when I was asked to work with one of the managers in our company who was not very popular among my colleagues due to his brash attitude and aloof behaviour. I accosted his with a friendly smile and a firm handshake and engaged in some banter with him about the weather and general things. When the time came to discuss the project I paid my full attention to what he was saying and I put forth my plan of action and backup plans. He seemed satisfied with my plans and I made sure that I stuck to my plan from the get-go. He was very satisfied with me and now he calls me repeatedly for his assignments. There was this other time when we were conducting an audit for a company and we had to present our observations to the senior management. The head of the management team was a very difficult man to handle as he was biased against the way we went about our audit and he was thoroughly dissatisfied with our work, but we were sure that what we had done was correct and fair. The head of the management of our client started verbally attacking each member of our team and questioned our competency and skills in front of other people. Although it made most of my colleagues blood boil when he verbally attacked them, I remained calm and waited for him to finish venting his anger before calmly reasserting our points and observations. The meeting was a disaster for my team members, but the client called us back for another engagement the same year and now everything is patched up between all of us.
Well, I am not permitted by my attorney to discuss any of the details of what happened, but let's just say I have anger management issues and some really awsome prison tattoos.
I told the truth that I had experience on an entry level position and that it had been 10 yrs since I used. I also advised that at my own expense I would take courses to bring my experience up to date.
I said a tree with root nodes as the first alphabet and each branch containing a word. The other solution was to use arrays, but i was unable to get the full answer to this.
I would use a Trie. Trie's are a neat data structure that let you build dictionaries seamlessly and you can easily keep track at the head nodes of how many sub nodes you have, where each sub node counts as a completed word. Trie's are commonly used to build dictionaries that support fast prefix look-up.
read "how would you read mount fuji" for practical examples.
The correct title of that very useful book is "How Would You Move Mount Fuji? Microsoft's Cult of the Puzzle - How the World's Smartest Company Selects the Most Creative Thinkers." It's available from Amazon - and I guess the question now is which company - MS or Google - owns that prestigious "smartest company" mantle!