Google Interview Question for Java Developers

Country: United States

Comment hidden because of low score. Click to expand.
of 0 vote

My solution is to think about this directed graph as a trie tree. Let's say we are trying to check if "abc" is valid in START -> a -> b -> c -> END. Starting from the START node, we want to know if there is a neighbor node with "a". If there is, we traverse to the node and see if there exists "b" and so on. Therefore, the most optimal data structure would be to have the graph in adjacency matrix which will result in O(k) time complexity where k is length of string.

Follow-up: Graph has cycle
Since we are traversing through the string that we want to check, it doesn't matter whether there is a cycle in the graph or not. We will traverse k times through the graph at maximum. If there is no END node after, then return false.

Follow-up: Graph has repeated characters
We can use backtracking to solve for this.

- waterloojeongbum February 16, 2019 | Flag Reply

Add a Comment

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.


is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

Learn More


CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.

Learn More

Resume Review

Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.

Learn More

Mock Interviews

Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.

Learn More