LCPython/google.md at master · VincentUCLA/LCPython



LCPython/google.md at master · VincentUCLA/LCPython

第一轮:给两个字母串 str1 = "ABABZ", str2 = "ABZ", 判断str1能否用str2中的字符拼成,如果能,最少的步数是多少?例子,从str2中取"A","B","A","B","Z"一共五步,但如果取"AB","ABZ"只需要两步。follow up,如果str2中有duplicate,BFS shortest path问题

第一个题的解释,换一种说法,就是从str2里每次可以取出一个substring,需要取多少次才能拼成str1.在没有duplicate的情况下,直接比较下一个字符串是否相同。

先要判断能不能成。如果str1里有字符不在str2,就不能成。 能成的情况下最多len(strt1)肯定可以嘛,所以要求的是最少需要几次。

问了大神,第一题比较好的思路是 记录每个字符在str2里的位置,再把str1里的字符过一遍,如果在str2的位置不连续就要增加步数

第二轮:in-order traversal, 给N,能否print出in order顺序第N个数。follow up,若已知每个node下面有多少个descendent,如何更快print出第N个数,binary search。具体实现的时候和面试官讨论了比较多的细节,也要了提示。

第三轮:同义词,给出很多pair的同义词,判断两个词是否为同义词,dfs,union find

第四轮:这一轮就是LC新出的920,如果能提前看过思路会清晰很多。中间讨论的时间花了太多,code没能写完,只实现了random play(我一开始写了O(N)的,如果之前看过类似的题,可以轻松给出O(1)解决方案),follow up的问题也没问到(组合数)。中途发现面试官的脸色也不太好,最后催着把code补充完

第四轮的complexity,题目的要求是写一个class,比如说Player,实现playNextSong这个method的复杂度是O(1)。


Read full article from LCPython/google.md at master · VincentUCLA/LCPython


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts