Redian新闻
>
明天中国队就要登场了,好紧张啊。。。 (转载)
avatar
明天中国队就要登场了,好紧张啊。。。 (转载)# Joke - 肚皮舞运动
p*s
1
都是第一轮就挂了,sign。。。
facebook网上投的简历,半年以后hr联系,两道程序题:
1 二进制加法
/**
* i.e.
*
* char a[] = "11";
* char b[] = "1";
* char *c = bstradd(a, b); // c is a pointer to "100"
**/
2 分层遍历二叉树
amazon网上投简历,两个月后hr联系。第一个interview,很容易的题,可惜没准备好
。找bst里最大的第n个node
telenav网上投的简历。最基本的c++题,全答对了,后面也没音信了。唯一一道算法粘
边的题,判断某个数是否是2的power(if(n&(n-1) == 0))。
quantcast也是网上投的简历。背景很match,面试的时候我在家里,信号有问题。两边
声音都听不听出,超级遗憾。
1 写程序的流程(设计,coding,test)
2 如何test
3 如何实现reference counting
avatar
r*g
2
【 以下文字转载自 Soccer 讨论区 】
发信人: lovevb (LoveVB), 信区: Soccer
标 题: 明天中国队就要登场了,好紧张啊。。。
发信站: BBS 未名空间站 (Sat Jun 12 23:39:46 2010, 美东)
这次刘翔把门,应该不会失球。就是有点担心姚明的膝盖,前场争头球的时候可能会就
伤复发。不过关键时刻还可以派上魏秋月,传几个背飞平拉开什么的。。。
Go Celtics!!!
avatar
p*7
3
lz应该准备下再去面,看来你是没好好准备
avatar
t*9
4
艺术家纷纷粉墨登场
不忍舍弃世界杯这个大舞台

【在 r*******g 的大作中提到】
: 【 以下文字转载自 Soccer 讨论区 】
: 发信人: lovevb (LoveVB), 信区: Soccer
: 标 题: 明天中国队就要登场了,好紧张啊。。。
: 发信站: BBS 未名空间站 (Sat Jun 12 23:39:46 2010, 美东)
: 这次刘翔把门,应该不会失球。就是有点担心姚明的膝盖,前场争头球的时候可能会就
: 伤复发。不过关键时刻还可以派上魏秋月,传几个背飞平拉开什么的。。。
: Go Celtics!!!

avatar
D*h
5
thanks for sharing

【在 p**********s 的大作中提到】
: 都是第一轮就挂了,sign。。。
: facebook网上投的简历,半年以后hr联系,两道程序题:
: 1 二进制加法
: /**
: * i.e.
: *
: * char a[] = "11";
: * char b[] = "1";
: * char *c = bstradd(a, b); // c is a pointer to "100"
: **/

avatar
i*l
6
这都是哪得脑残?

【在 r*******g 的大作中提到】
: 【 以下文字转载自 Soccer 讨论区 】
: 发信人: lovevb (LoveVB), 信区: Soccer
: 标 题: 明天中国队就要登场了,好紧张啊。。。
: 发信站: BBS 未名空间站 (Sat Jun 12 23:39:46 2010, 美东)
: 这次刘翔把门,应该不会失球。就是有点担心姚明的膝盖,前场争头球的时候可能会就
: 伤复发。不过关键时刻还可以派上魏秋月,传几个背飞平拉开什么的。。。
: Go Celtics!!!

avatar
p*s
7
我写程序太烂了,bug多。一直都在练习,呵呵~

【在 p********7 的大作中提到】
: lz应该准备下再去面,看来你是没好好准备
avatar
p*u
8
哪位大虾能贴一下第一题的code?
avatar
m*l
9
第一题确实有趣
不用atoi()

【在 p*****u 的大作中提到】
: 哪位大虾能贴一下第一题的code?
avatar
l*i
10
you can easily get into integer overflow if you use atoi, and you have to
use itoa or sprintf if you do it that way.
avatar
f*4
11
第一题,如果你把a,b数组当作参数传进去的话,不传数组长度进去,bstradd怎么能
知道数组多长?
bstradd(a, b)里面的 sizeof(a)/sizeof(char) == 1
avatar
T*e
12
能拿到这么多面试,背景应该不错。好好努力准备。会有大offer的。
avatar
s*y
13
int len = 0;
while(*a++) len++;

【在 f****4 的大作中提到】
: 第一题,如果你把a,b数组当作参数传进去的话,不传数组长度进去,bstradd怎么能
: 知道数组多长?
: bstradd(a, b)里面的 sizeof(a)/sizeof(char) == 1

avatar
s*n
14
先写一个 函数加法:
private uint add(uint x, uint y, ref uint carrybit)
{
assert (x < 2 && y < 2 &7 carrybit <2);
uint ret = x^ y ^ carrybit;
carrybit = (x + y + carrbyit)/2;
return ret;
}
char[] strAdd(char[] a, char[] b)
{
int carry = 0;
char[] c= new char[max(a.length, b.length) + 1];
int len = min(a.Length, b.Length);
//compute the first part;
for (int i = 0, j= 0 ; i < len; i++, j++)
{
c[Length - 1 - j] = add(a[i] - '0',b[i] - '0',carry) + '0';
}
// compute the rest
for (int i = 0; i < b.Length - a.Length; i++)
{
c[Length - 1 - i - j] = add(0,b[i] - '0',carry) + '0';
}
if (carry > 0)
c[Length - 1 -i - j] = '1';
cut the front and output.
}

【在 p*****u 的大作中提到】
: 哪位大虾能贴一下第一题的code?
avatar
m*l
15
写个不准用atoi()
-'0'也算

【在 s*****n 的大作中提到】
: 先写一个 函数加法:
: private uint add(uint x, uint y, ref uint carrybit)
: {
: assert (x < 2 && y < 2 &7 carrybit <2);
: uint ret = x^ y ^ carrybit;
: carrybit = (x + y + carrbyit)/2;
: return ret;
: }
: char[] strAdd(char[] a, char[] b)
: {

avatar
f*4
16
哦,我傻了,没注意到这是char []
如果是int []的话,不传长度进去,有办法知道数组长度么?

【在 s*****y 的大作中提到】
: int len = 0;
: while(*a++) len++;

avatar
m*l
17
char a[] = "11"; 和 char* a = "11";
有啥区别?
【 在 fzzh24 (fzz) 的大作中提到: 】
avatar
i*e
18
你的代码好像有 bug,没有 '\0' 终止 string output.
我尝试写一下,思路跟两个数相加,不可利用 + operator 怎么做。
唯一一个问题就是 out = "0110",前面的 0 是无可避免,除非数组往前挪一位。
char *bstradd(char a[], char b[]) {
int n1 = strlen(a);
int n2 = strlen(b);
int len = max(n1, n2) + 1;
char *out = new char[len + 1];
out[len] = '\0';
int carry = 0;
for (int i = 0; i < len; i++) {
int dig1 = (i < n1) ? a[n1 - i - 1] - '0' : 0;
int dig2 = (i < n2) ? b[n2 - i - 1] - '0' : 0;
int sum = dig1 ^ dig2 ^ carry;
carry = (dig1 & dig2) | (dig1 & carry) | (dig2 & carry);
out[len - i - 1] = sum + '0';
}
return out;
}
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 s*****n 的大作中提到】
: 先写一个 函数加法:
: private uint add(uint x, uint y, ref uint carrybit)
: {
: assert (x < 2 && y < 2 &7 carrybit <2);
: uint ret = x^ y ^ carrybit;
: carrybit = (x + y + carrbyit)/2;
: return ret;
: }
: char[] strAdd(char[] a, char[] b)
: {

avatar
g*e
19
把结果存成linkedlist会不会更方便点。其实把两个char数组也转换成linkedlist,每
个元素一位。剩下就成了跟两个大整数相加的题目一样了。也不用担心overflow的问题

【在 i**********e 的大作中提到】
: 你的代码好像有 bug,没有 '\0' 终止 string output.
: 我尝试写一下,思路跟两个数相加,不可利用 + operator 怎么做。
: 唯一一个问题就是 out = "0110",前面的 0 是无可避免,除非数组往前挪一位。
: char *bstradd(char a[], char b[]) {
: int n1 = strlen(a);
: int n2 = strlen(b);
: int len = max(n1, n2) + 1;
: char *out = new char[len + 1];
: out[len] = '\0';
: int carry = 0;

avatar
i*e
20
是的,如果转换成 linkedlist 来做会更方便些。(但是需要额外空间和时间)
尤其数组不能解决前面第一个数为 0,要全部往前挪一位的问题。
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 g**e 的大作中提到】
: 把结果存成linkedlist会不会更方便点。其实把两个char数组也转换成linkedlist,每
: 个元素一位。剩下就成了跟两个大整数相加的题目一样了。也不用担心overflow的问题

avatar
f*4
21
这里不是 char a[]和char * a有啥区别
它们都是c type string,结尾都是'\0'
所以可以直接传到函数里面去不用传递a的长度
我想问的是其他类型数组,比如int a[]的话,如果不传长度进去,在函数内部能否得
到a的长度

【在 m********l 的大作中提到】
: char a[] = "11"; 和 char* a = "11";
: 有啥区别?
: 【 在 fzzh24 (fzz) 的大作中提到: 】

avatar
h*i
22
把两个数从后往前加,顺序插到第三个string,然后reverse。

【在 i**********e 的大作中提到】
: 你的代码好像有 bug,没有 '\0' 终止 string output.
: 我尝试写一下,思路跟两个数相加,不可利用 + operator 怎么做。
: 唯一一个问题就是 out = "0110",前面的 0 是无可避免,除非数组往前挪一位。
: char *bstradd(char a[], char b[]) {
: int n1 = strlen(a);
: int n2 = strlen(b);
: int len = max(n1, n2) + 1;
: char *out = new char[len + 1];
: out[len] = '\0';
: int carry = 0;

avatar
i*e
23
当你传一个数组进去的时候,在函数内得到的只是指向数组第一个位置的一个指针。(
不管你函数定义的是 int *a 或者 int a[],编译器都直接转换成 int *a)。
所以如果你在函数内利用 sizeof(a) 的话,那得到的永远是 4,也就是指针的 size,
而不是数组的 size。除非你数组内有个 sentinel 值(类似 c string 的 '\0'),不然你必须传数组的长度进函数。
那为什么在定义了 int a[],然后 sizeof(a) 可以告诉数组的总共 size (in bytes)
呢?因为这里 a 是数组,不是指针。你虽然可以利用 *(a + 3) 来得到 a[3],但是你
不能像指针一样,可以 a++ 或者 a--。因为数组与指针的特别关系,所以数组也称为
constant pointer。
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 f****4 的大作中提到】
: 这里不是 char a[]和char * a有啥区别
: 它们都是c type string,结尾都是'\0'
: 所以可以直接传到函数里面去不用传递a的长度
: 我想问的是其他类型数组,比如int a[]的话,如果不传长度进去,在函数内部能否得
: 到a的长度

avatar
i*e
24
这也算是一个方法。
如果要 reverse 的话,那还不如数组往前挪一位快(hardware dependable,由于往前
挪一位是 sequential access,读/写 速度较快)
一些常见面试题的答案与总结 -
http://www.ihas1337code.com

【在 h***i 的大作中提到】
: 把两个数从后往前加,顺序插到第三个string,然后reverse。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。