## Google Interview Question

Java Developers**Country:**United States

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

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.

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.

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.

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.

- waterloojeongbum February 16, 2019Follow-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.