cpp_projects/mitbbs at master ・ xqian/cpp_projects



cpp_projects/mitbbs at master ・ xqian/cpp_projects

1. 近似字符串匹配。比如给定一个长串(10G以上的量级),再给定一个短串(比如长 度为10),然后允许最多有两个字符的匹配误差,让找出长串中所有的匹配位置。(自 己觉得是�u在了这题。面试过程中一直没找到正确的思路,面试官开始试图给了一些引 导,但无奈没找到他所想的方向,后来他也有些不知道如何引导,因为他觉得除了答案 好像也无法给其它提示了。感觉就是两人都很无奈:他觉得都提示得那么明显了,你怎 么还不能想到呢,我自己也很着急,觉得某个点没想到,想到了就会简单,但到底是哪 个点呢。。。面试官也看他的code review去了 /* 【 在 novice (novice) 的大作中提到: 】 : 能说说第一题: : 1. 近似字符串匹配。比如给定一个长串(10G以上的量级),再给定一个短串(比如长 : 度为10),然后允许最多有两个字符的匹配误差,让找出长串中所有的匹配位置。 : 面试官是如何引导的吗? 我的想法是滚动hash 比如短串是abcd 那么把它本身和误差为一个或两个char的短串的滚动hash值都算出来放到一个set里面 e.g. abcd bbcd cbcd ... zbcd aacd ... azcd 一共有26*10+45*26*26个备选的短串。 然后在长串里match就行了 hash function随便找个小的质数就ok 比如abcd ==>> a*7^4+b*7^3+c*7^2+d*7 */ 2. 设计 api 并用 mutex 实现一个读写锁。 3. 6. 用 C/C++ 的基本语言特性判断某个系统上栈的生长方向。 4. 给一堆点, 找一条线穿过最多的点 第四题: 任选两个点都能组成一条线y=ax+b,所以可以有个Pair (a,b) 然后我就弄个Map<Pair, Set<point>> ,找所有两点组合算它们的(a, b) pair, 把两 个点加到map.get(pair)中。 最后看map中所有的set谁的size最大, return这个对应的(a, b).

Read full article from cpp_projects/mitbbs at master ・ xqian/cpp_projects


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