Hawstein's Blog

Make something people love

Cracking the coding interview--Q19.8

题目 原文: Design a method to find the frequency of occurrences of any given word in a book. 译文: 设计一个函数,找到给定单词在一本书中的出现次数。 解答 这道题目和19.2是一个思路。如果只需要查询一次, 那就直接做;如果要多次查询,而且要查询各种不同的单词,那就先预处理一遍, 接下来就只需...

Cracking the coding interview--Q19.7

题目 原文: You are given an array of integers (both positive and negative). Find the continuous sequence with the largest sum. Return the sum. EXAMPLE Input: {2, -8, 3, -2, 4, -10} Output: 5 (i.e...

Cracking the coding interview--Q19.5

题目 原文: The Game of Master Mind is played as follows: The computer has four slots containing balls that are red (R ), yellow (Y), green (G) or blue (B). For example, the computer might have RGG...

Cracking the coding interview--Q19.4

题目 原文: Write a method which finds the maximum of two numbers. You should not use if-else or any other comparison operator. EXAMPLE Input: 5, 10 Output: 10 译文: 写一个函数返回两个数中的较大者,你不能使用if-else及任...

Cracking the coding interview--Q19.3

题目 原文: Write an algorithm which computes the number of trailing zeros in n factorial. 译文: 写一个算法计算n的阶乘末尾0的个数。 解答 首先,算出n的阶乘的结果再去计算末尾有多少个0这种方法是不可取的, 因为n的阶乘是一个非常大的数,分分种就会溢出。我们应当去分析, 是什么使n的阶乘结果末尾...

Cracking the coding interview--Q19.2

题目 原文: Design an algorithm to figure out if someone has won in a game of tic-tac-toe. 译文: 设计算法检查某人是否赢得了井字游戏。 解答 假设这个检查某人是否赢得了井字游戏的函数为HasWon,那么我们第一步要向面试官确认, 这个函数是只调用一次,还是要多次频繁调用。如果是多次调用, 我们可以...

Cracking the coding interview--Q19.1

题目 原文: Write a function to swap a number in place without temporary variables. 译文: 写一个函数交换两个数,不能使用临时变量。 解答 交换函数swap是经常用到的函数,小巧简单,以下两种实现方式都不需要使用临时变量: 1 2 3 4 5 6 7 8 9 10 11 12 // 实现1 void sw...

Cracking the coding interview--Q18.5

题目 原文: Suppose we have the following code: 1 2 3 4 5 6 7 8 9 10 11 class Foo{ public: A(.....); /*If A is called, a new thread will be created and the corresponding function will be execute...

Cracking the coding interview--Q18.3

题目 原文: Implement a singleton design pattern as a template such that, for any given class Foo, you can call Singleton::instance() and get a pointer to an instance of a singleton of type Foo. Ass...

Cracking the coding interview--Q18.2

题目 原文: How can you measure the time spent in a context switch? 译文: 你如何测量一次上下文切换所需时间? 解答 这是一个棘手的问题,让我们先从可能的解答入手。 上下文切换(有时也称为进程切换或任务切换)是指CPU 的控制权从一个进程或线程切换到另一个。 (参考资料) 例如让一个正在执行的进程进入等待状态(或终止它)...