由买买提看人间百态

topics

全部话题 - 话题: 赋值
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
l*y
发帖数: 21010
1
来自主题: JobHunting版 - 问几个unix/c++工作面试题
第二个,有一种快速给数组赋值的算法,速度比线性快,回头我有时间帮你找个链接
B*****t
发帖数: 335
2
来自主题: JobHunting版 - C++面试问题,高人请进啊~~~
Printer* Printer::makePrinter() {
Printer* pPrinter = NULL;
try {
pPrinter = new Printer;
} //编译器在这里加入了汇编代码。当Printer的构造函数或者Printer父类的构造
函数Throw Exception时,会自动跳到这里这些执行这些代码,然后根据分配给Printer
在堆上内存的地址,回收这些内存, 对pPrinter的赋值不会被执行,调用析构函数也不
会被调用。
...
}

有个
Con
存泄
看出
m****n
发帖数: 589
3
来自主题: JobHunting版 - Google电面,估计被拒了:(
嗯嗯,是的,没错~
我刚跑了一下你写的代码。跑出来是对的~
不过,在y大于等于0的情况下,t没有赋值。

我的那个程序不就是这样吗?
就是多了几个没用i+1,你看看是不是。
d*******8
发帖数: 785
4
题目要求你只用Swap操作吧,没有赋值,呵呵
n***r
发帖数: 105
5
来自主题: JobHunting版 - 问到linked list 的题目
很close了。我觉得这题是考pointer's pointer。
但我觉得怎么招都得知道前一个node的地址,得把其next pointer赋值为NULL,否则就
断链了。用pointer's pointer的好处是在遍历这个linked list的时候可以省去一个指向前一
个node的pointer。
比如说删除存有item为i的程序就可以这样写,但是还是require work through这个
list,以便持有前一个node的地址。
struct list **lpp;
for(lpp = &list; *lpp != NULL; lpp = &(*lpp)->next)
{
if((*lpp)->item == i)
{
*lpp = (*lpp)->next;
break;
}
}
}

用这段程序,就算删除的对象是尾node,也自动take care了。欢迎讨论
h**6
发帖数: 4160
6
来自主题: JobHunting版 - 问到linked list 的题目
显然不行。你把尾指针赋值为NULL了,可是前一个结点的next还是没有变。
j**l
发帖数: 2911
7
来自主题: JobHunting版 - 一道老题
三江口内,风浪不息,铁索连舟,如履平地。
这是小尾羊同学Google最终面的一道经典题目
核心思想就是,先合后分。
先平凡复制整个链表,不考虑random指针。
充分利用random指针和next指针,把原始链表和复制的链表这两个链表关联起来。传说
中有两种连接法:一种是串成长度为2倍的新链表(类似一串珍珠),另一种是两个平行
但竖直方向对应节点相连的链表(类似横着的梯子)
不管哪种连法,都可以方便的给random指针赋值了。
然后不要忘记把两个链表的关联断开,成为两个一样的独立链表。
j**l
发帖数: 2911
8
来自主题: JobHunting版 - 一道老题
老中的二倍珍珠解法,用百度搜索中文都可找到的,而且有图。
个人觉得还是老印的解法巧妙,下面具体用例子说说。
假如链表为A->B->C->D->E
A的random指向E, B的random指向D, C的random指向自身C, D和E的random都为NULL。
第一步,平凡复制原始链表,不考虑random指针(全部设为NULL)
这样得到A'->B'->C'->D'->E',所有random都为NULL
第二步,建立连接
让A的random指向A', B的random指向B', ..., E的random指向E', 成为梯子的单向辐条。
让A'的next指向E, B'的next指向D, C'的next指向C, D'和E'的next都为NULL, 也就是
用复制链表的next保存原始链表的原始random
A->B->C->D->E
| | | | |
A' B' C' D' E'
第三步,给A', B', C', D', E'的空random指针赋值
这样A'的random指向E', B'的random指向D', C'的random指向自身C', D'和E'的random
j**l
发帖数: 2911
9
来自主题: JobHunting版 - 刚面完facebook。。。很晕菜
你这黑白棋是只支持手动对战么?那样简单许多。
如果要支持电脑和人对弈,那就需要一些人工智能的算法了,大概和博弈树,搜索,剪
枝什么的有关。具体到这棋,还有金角银边草肚皮的赋值策略。上世纪末北京市高校就
搞过一个黑白棋程序大赛,我们学校得奖的还是三个大二学生合作的,一个人搞算法,
一个人写程序,一个人搞界面。
如果只是手动对战,有点数组的知识也够了,可以参考八皇后问题的程序,都需要处理
横竖斜的情况。
对了,最好可以提示哪些地方可以落子,因为必须吃子(夹着翻转对方棋子)才可以落
子,否则必须pass(原地不动让对方白走一步)
y**i
发帖数: 1112
10
来自主题: JobHunting版 - 请问:什么情况下singleton will fail?
singleton需要构造函数,拷贝构造函数和拷贝赋值都是private的吧
r**m
发帖数: 163
11
来自主题: JobHunting版 - bloomberg面经
申请个Bloomberg的实习还得onsite 啊?FT(附面经)
原以为两次店面就搞定
结果一面之后就通知去 NYC onsite
大家说说是搞什么飞机呢
题目太简单 都有些不敢拿出来给大家看
面经如下:
1. C中的static
2. 动态内存拷贝
3. 给定一个数组(已知数值在0-9范围)计算frequency
4. 定义一个global variable和local variable,不赋值,问输出值各位多少
j**l
发帖数: 2911
12
来自主题: JobHunting版 - 链表复制问题
http://www.mitbbs.com/article_t1/JobHunting/31563337_0_1.html
三江口内,风浪不息,铁索连舟,如履平地。
这是小尾羊同学Google最终面的一道经典题目
核心思想就是,先合后分。
先平凡复制整个链表,不考虑random指针。
充分利用random指针和next指针,把原始链表和复制的链表这两个链表关联起来。传说
中有两种连接法:一种是串成长度为2倍的新链表(类似一串珍珠),另一种是两个平行
但在竖直方向对应节点相连的链表(类似横着的梯子)
不管哪种连法,都可以方便的给random指针赋值。
然后不要忘记把两个链表的关联断开,成为两个一样的独立链表。
f****4
发帖数: 1359
13
来自主题: JobHunting版 - 请教个 interview question
ac
FN是函数指针的定义,FN返回void,接受一个int参数
f1返回void,接受一个int
f2返回void *,接受一个int
在函数指针赋值的时候,直接取函数名f1和用 &f1是等效果的
j**l
发帖数: 2911
14
来自主题: JobHunting版 - 问道数组元素连续相乘的名题
可以用例子说明,假如n = 5
首先让b从前向后一重循环累乘并赋值得到b的五个元素如下:
1, a1, a1*a2, a1*a2*a3, a1*a2*a3*a4
然后从后向前一重循环累乘
第五个元素乘1,
第四个元素乘a5
第三个元素乘a5*a4
第二个元素乘a5*a4*a3
第一个元素乘a5*a4*a3*a2
c**********6
发帖数: 105
15
店面一次 然后去他家onsite(非常规,怎么非常规 请看下面)
两个SDE一起面 一人一道题 感觉像在敷衍 总共不到50分钟
遇到一个VT的哥们儿
就两个intern 估计是二选一
现在还没回消息 估计杯具了 顺便恭喜他了下 :-)
史上最弱面经:
NO1. 之前店面:
1. C中的static
2. shallow copy vs deep copy
3. 给定一个数组(已知数值在0-9范围)计算frequency
4. 定义一个global variable和local variable,不赋值,问输出值各位多少
NO2. onsite
1. 用什么数据结构表示一个图像(RGB)
如何flip这个矩阵(实际上是transpose)
2. 25匹马
f****4
发帖数: 1359
16
这个题目有点意思
我先来抛个砖头吧
我记得COM通信的时候,有一个IDL的东西,用来提供数据的mapping
简单的说,就是通信双方约定了一套规则,这个规则规定了各个数据类型的长度,精度
等等东西,包括要是传送对象包含一个指针,如何将指针指向对象也打包起来,一块发
送给对方;对方收到后,创建对像的时候,正确赋值指针
这里是不是也要考虑到系统数据类型长度不一致的情况啊?
f*******r
发帖数: 1086
17
来自主题: JobHunting版 - 一个Linkedlist面试题的教训
Sorry,是的,这个的确是需要的!
在else里面给head赋值之前加一句
head.next = NULL;
head = root;
应该就可以了。
M********5
发帖数: 715
18
来自主题: JobHunting版 - one C++ question?

前面说要举的例子就是这样子的:
Base中有分配内存,Derived也有分配内存,如果我们有一个指针指向动态分配的
Derived,然后再
把这个指针赋值给指向Base的指针,然后delete指向Base的指针,就会出现内存泄露!
Base *pb;
Derived *pd = new Derived;
pb = pd;
delete pb; //这里就会出现内存泄露的问题
我想我这样解释不知道大家是否明白
j**l
发帖数: 2911
19
来自主题: JobHunting版 - bloomberg 店面
林锐的书有个例子
String& String::operator=(const String& other)
{
if (this != &other)
{
delete[] m_data;
int len = strlen(other.m_data);
m_data = new char[len + 1];
strcpy(m_data, other.m_data);
m_size = len;
}
return *this;
}
如果不检查自赋值,delete后又去复制自己,就访问了dangling的野指针,这是危险的。
A***J
发帖数: 478
20
来自主题: JobHunting版 - 看看这道题
第一个我的理解是,你赋值了,但没有给地址, 第二个给了地址
s****n
发帖数: 1237
21
来自主题: JobHunting版 - 回馈本版,贴GOOGLE电话面经
试了一下,如果
char string1[] = "ccc";
RemoveConsecutiveDuplicates(string1); 是可以的。
但是
char *string2 = "aaa";
RemoveConsecutiveDuplicates(string2); 是不行的,虽然complier不会报错,但是
run的时候在s[index]赋值的地方报 Access violation writing location 的错。
所以需要检验这个input到底是char * 还是char []。不过没有想出来怎么检验。
p********7
发帖数: 549
22
来自主题: JobHunting版 - 砸了面试,发面题
第二题是 30 1,是不是因为传入函数的参数顺序是从右到左
第三题 是对的,不知道A *p = 0;其实是给p一个NULL指针,还是没实例化,但是他可以调用
函数,因为这些函数不占用内存。
第八题和第二题类似,应该是个随机数,因为初始化列表的顺序是从右向左,所以你调用
getnumber先,赋值在后
第九题也不对,是随机数,10,40,随机数。只有全局变量才初始化为0
P*******b
发帖数: 1001
23
来自主题: JobHunting版 - 砸了面试,发面题
我估计你们的8字节对齐。我的是4字节对齐
感觉4字节对齐更多吧。
另外这道题有错误。static赋值不对吧?
h**k
发帖数: 3368
24
来自主题: JobHunting版 - 请教一个C++的问题
1)声明一个函数指针,类型是Person类里的一个成员函数,它的参数和返回值都是空。
2)不确定是否编译出错。但是执行的时候你无法得到一个非public的成员函数的地址
,所以你无法赋值给method。
p********7
发帖数: 549
25
来自主题: JobHunting版 - C++问题3
memset() 这理有问题吧
首先,如果sizeof是指包括了'\0'
其次,好像memset 用1去或者其他数是不能成功的,因为这样就实际是赋值为1,但是
是个
asic码,第三个memset超出char的范围了
l*********r
发帖数: 674
26
shared google doc document。当时写完了面试的人说不错。结果晚上吃完饭我自己
test一下发现有个地方写错了,有个赋值应该在大于的条件下,结果我写到小于的case
里面了。这个错很容易看出来的,不知道面完了人家还会仔细看么?还是说面完了人家
也就把这个google doc关掉了?
f*****w
发帖数: 52
27
来自主题: JobHunting版 - 发个A公司的面经
超过范围其实我也不确定,我说的是如果给int赋值超过范围,int储存的是bits里面较
低位,所以两个不相等。其实我也不知道回答的对不对。
Java的linkedlist不可能有loop,所以答案就是直接return false....我当时面试的时
候回答出这个感觉很无语。
S**I
发帖数: 15689
28
来自主题: JobHunting版 - 分享A公司面经
估计是这样:s2分配在stack上,对foo的调用结束时s2被deallocate,但是s2被分配的
那段内存还没有被覆盖,对t的赋值导致在stack上为t分配内存,于是t就指向了s2原先
指向的内存地址。
我觉得几乎不可能被利用,按标准来说这是undefined behavior,返回任何结果都是有
可能的,也包括正确的结果——但是这个不可能被事先预料到。
x*********g
发帖数: 69
29
来自主题: JobHunting版 - c/c++ question
运行了一下
3个hello world
input[3]=0x00 bad pointer。
问一下,
是不是char *input[]赋值,i位错误时,input[i]默认为0x00
f*********i
发帖数: 197
30
这个其实很好理解啦,因为质数相乘的结果是unique的,所以假设所有的字符个数是K
个,只要一一对应到头K个质数就可以了。不过要考虑overflow的问题,我当时是这样
回答的,当乘积太大的时候(超过longint的范围),就用字符来表示他们,比如111表
示为“111”,然后算字符串的乘积。
还有第四题,我当时回答是把board用一个2维N*N矩阵表示,如果一个cell已经占据了
,那么就是1,otherwise 0, 然后element也同样用2维M*N矩阵表示,根据形状赋值1
或者 0, 然后看能不能放入的方法是把element矩阵加到board矩阵里,如果有某个
cell的值超过1,那么就conflict。element的rotation可以表示为矩阵的rotation。但
是这样相加比较还是很复杂,因为要考虑M*N*4钟可能,也就是说,要考虑element的任
何一格覆盖这个cell的几率,并且4钟rotation都要考虑,他不是很满意。看看版上有
没有高人给我解惑了。
发信人: anson627 (anson), 信区: JobHunting
标 题: Re: MS on... 阅读全帖
z*s
发帖数: 209
31
来自主题: JobHunting版 - Bloomber 面试题
我在Bloomberg的网站上投的简历,Financial Software Developer。几天以后就收到
了在线测试的邮件,四种编程语言选一种进行测试:C、C++、Java和C#,我选的C。一
共三十道题,都是五选一的选择题,每题限时三分钟。通过后接到电话面试的通知。
电话面试:
面试官是印度人,他说他在家用手机打的,我估计是当时纽约下大雪,上不了班了。然
后他又说他手里没有我的简历,让我先自我介绍一下。问的题大部分都是概念题。
1、进程、线程。
2、C语言存储空间的布局,堆、栈、静态存储区等等。问了一个具体的问题:
char *str = "Hello World"; /* 1 */
memset(str, 'a', 100); /* 2 */
第1句中的字符串和指针分别存储在什么地方?第2句会产生什么问题?他想要的答案是
Segmentation fault。
3、操作系统内存管理的一些问题,包括虚拟内存、页表、缺页处理等等。
4、网络,介绍一些你知道的网络协议,比较TCP和UDP,比较路由器和交换机,它们分
别工作在哪一层。
5、数据结构,链表、树、平衡二叉树等等。
6、... 阅读全帖
y*******i
发帖数: 100
32
来自主题: JobHunting版 - 一道c++ primer的问题
(a) int i = -1;
(b) const int ic = i;
(c) const int *pic = ⁣
(d) int *const cpi = ⁣
(e) const int *const cpic = ⁣
答案说(d)不合法,其他都合法。d怎么不合法了,不是给一个const 的指针赋值了吗
b*****n
发帖数: 482
33
来自主题: JobHunting版 - CareerCup 13.9的solution有memory leak
13.9 Write a smart pointer (smart_ptr) class.
代码在下面。象第16行这样直接赋值,ref_count原来指向的空间就丢了。如果有另一
个smart
pointer指向同一个空间,那么ref_count分配的空间还可以access,但是count并没有
减一,所以
最终还是无法释放指针。
13 SmartPointer & operator=(SmartPointer & sptr) {
14 if (this != &sptr) {
15 ref = sptr.ref;
16 ref_count = sptr.ref_count;
17 ++*ref_count;
18 }
19 return *this;
20 }
有兴趣可以试试下面的test case:
SmartPointer spt1(new int(10));
SmartPointer spt2(new int(20));
spt2 = spt1; // the origina... 阅读全帖
h********m
发帖数: 116
34
来自主题: JobHunting版 - 问个C的基本问题
不太明白,*p1, *p2我不是赋值了么?
如果不能这么直接print,那我该怎么输出*p1和*p2的值呢?分别赋给p3,p4?
我试了一下,下面这个程序还是segmentation fault呀?
int main(void)
{
char *p1, *p2, p3, p4;
*p1 = 'c';
*p2 = 'd';
p3 = *p1;
p4 = *p2;
printf("%c %c\n", p3, p4);
return 0;
}
b******n
发帖数: 4509
35
来自主题: JobHunting版 - 问个C的基本问题
char *p1 这种定义,编译器会默认给 p1 赋值为 null,
然后你 *null 当然会出现 segment fault
i**********e
发帖数: 1145
36
来自主题: JobHunting版 - 问个C的基本问题
p1 一直没有被赋值。
你赋的值是 *p1,也就是 p1 指向的地方。
但由于 p1 里的值没有被初始化,所以 p1 可以指向任意地方,这当然会造成
segmentation fault。
没有 segmentation fault 会更加恐怖,这意味着你程序里的 data 可能暗地里被修改
了!
一些常见面试题的答案与总结 -
http://www.ihas1337code.com
j***y
发帖数: 2074
37
在193~194页,书里谈到了一个下面的问题:
---
Signedness of char. In C and C++, it is not specified whether the char data type is signed or unsigned. This can lead to trouble when combining chars and ints, such as in code that calls the int-valued routine getchar(). If you say
? char c; /* should be int */
? c = getchar();
the value of c will be between 0 and 255 if char is unsigned, and between -128 and 127 if char is signed, for the almost universal configuration of 8-bit characters on a two's complement machin... 阅读全帖
x***i
发帖数: 585
38
赋值为null即可。
就和file system一样。delete一个文件,只是mark为空。下次gc就可以把它回收掉
f****4
发帖数: 1359
39
来自主题: JobHunting版 - A家,link all node in the same lev
http://www.ihas1337code.com/2010/03/first-on-site-technical-int
那题有假设条件
You may assume that it is a full binary tree
任意的树用遍历的方法
维护一个足够大的数组
Node ** current_tail;
递归的时候把当前level作为参数传进去,根据level,赋值current_tail[level]->next = node;
current_tail[level] = node;
g**********y
发帖数: 14569
40
来自主题: JobHunting版 - 问Thomson Reuters两道算法题
如果用count的话,count完为什么不直接赋值?反正都是整数。
r******l
发帖数: 10760
41
来自主题: JobHunting版 - 问个google面试题
你这个程序里面,叶子节点的commen都没赋值就直接拿来用?
s********k
发帖数: 6180
42
【 以下文字转载自 Programming 讨论区 】
发信人: silverhawk (silverhawk), 信区: Programming
标 题: 怎样判断什么情况下不会出现race condition
发信站: BBS 未名空间站 (Fri Jun 24 11:38:28 2011, 美东)
如果一个变量在多处被赋值,是不是首先假定会存在race condition?怎样判断什么情
况下不会出现race condition?
或者是首先假定不会有race condition,然后判断什么情况下会有race condition?
a********m
发帖数: 15480
43
用函数指针应该可以。然后强制赋值。
c******e
发帖数: 545
44
打个比方说,地址在0x400000的函数当初是用__stdcall修饰的(比如win32平台上的
WINAPI宏,API函数默认修饰),那么声明指针的时候也要用相同修饰:
void (__stdcall*func)(int,int) = (void (__stdcall*)(int,int))0x400000;
func(10,100);
如果用系统默认__cdecl的话
void (*func)(int,int) = (void (*)(int,int))0x400000;
func(10,100);
生成的调用代码就完全不正确,原因见原帖。这种问题平时是见不到的,因为compiler
会核对原型,而且link的时候因为name mangling也通不过,但是因为指针强制赋值,
所以跳过了所有的检查,需要自己确定才行。
g**********y
发帖数: 14569
45
来自主题: JobHunting版 - 几道老题 的解答
1. 你有一种语言的dictionary,你有一大串string,没有delimit,你如何interpret成字
典中的字呢?
http://www.mitbbs.com/article/JobHunting/31488093_3.html
这个刚讨论过,就是把一个句子分拆成单词,既可以用Trie, 也可以DP。去search
ihasleetcode的帖子。
2. 给你一个字典array of strings (you may preprocess it if necessary)
任意一个单词,求最小的edit distance
一个单位的distance定义为:
a. replace a letter
b. delete a letter
c. insert a letter (also at any position)
这个我不知道有什么高效的办法,我就brutal force: 反复调用minimumEditDistance(
String a, String b),求最小值。
求最小值的时候可以加点智能,比如已知现在最小值为k, 那么word.length() +/- k... 阅读全帖
m**q
发帖数: 189
46
来自主题: JobHunting版 - 几道老题 的解答

1. 你有一种语言的dictionary,你有一大串string,没有delimit,你如何interpret成字
典中的字呢?
http://www.mitbbs.com/article/JobHunting/31488093_3.html
这个刚讨论过,就是把一个句子分拆成单词,既可以用Trie, 也可以DP。去search
ihasleetcode的帖子。
=> 收到,多谢啦
应该是trie + backtracking 或者 trie + DP吧
2. 给你一个字典array of strings (you may preprocess it if necessary)
任意一个单词,求最小的edit distance
一个单位的distance定义为:
a. replace a letter
b. delete a letter
c. insert a letter (also at any position)
这个我不知道有什么高效的办法,我就brutal force: 反复调用minimumEditDistance(
String a, String b),求最小值。
... 阅读全帖
g**********y
发帖数: 14569
47
来自主题: JobHunting版 - 几道老题 的解答
1. 你有一种语言的dictionary,你有一大串string,没有delimit,你如何interpret成字
典中的字呢?
http://www.mitbbs.com/article/JobHunting/31488093_3.html
这个刚讨论过,就是把一个句子分拆成单词,既可以用Trie, 也可以DP。去search
ihasleetcode的帖子。
2. 给你一个字典array of strings (you may preprocess it if necessary)
任意一个单词,求最小的edit distance
一个单位的distance定义为:
a. replace a letter
b. delete a letter
c. insert a letter (also at any position)
这个我不知道有什么高效的办法,我就brutal force: 反复调用minimumEditDistance(
String a, String b),求最小值。
求最小值的时候可以加点智能,比如已知现在最小值为k, 那么word.length() +/- k... 阅读全帖
m**q
发帖数: 189
48
来自主题: JobHunting版 - 几道老题 的解答

1. 你有一种语言的dictionary,你有一大串string,没有delimit,你如何interpret成字
典中的字呢?
http://www.mitbbs.com/article/JobHunting/31488093_3.html
这个刚讨论过,就是把一个句子分拆成单词,既可以用Trie, 也可以DP。去search
ihasleetcode的帖子。
=> 收到,多谢啦
应该是trie + backtracking 或者 trie + DP吧
2. 给你一个字典array of strings (you may preprocess it if necessary)
任意一个单词,求最小的edit distance
一个单位的distance定义为:
a. replace a letter
b. delete a letter
c. insert a letter (also at any position)
这个我不知道有什么高效的办法,我就brutal force: 反复调用minimumEditDistance(
String a, String b),求最小值。
... 阅读全帖
s***h
发帖数: 662
49
来自主题: JobHunting版 - 一个关于指针的问题
我在处理一个char array c[], 想把它从某个位置开始,向左移一个字符,这样原来那
个字符就被删掉了。
比如说,c[100], 从51到100向左移一个字符,那么50就被overwrite
假定已经有指针指向c[51], 称为p,实际这个操作等于
while (*p)
{
*p = *(p+1);
p++;
}
这个让我不由会想到
while (*p)
*p = *(++p);
这个不是看起来比刚才那个好看多了吗?不过这样++在执行的时候,也把左边给先改掉
了。所以就突然想弄清楚赋值的时候左右两边的表达式求值的顺序。有哪位给解说一下?
i*****e
发帖数: 63
50
来自主题: JobHunting版 - 一个关于指针的问题
*p = *(p++) 应该可以吧
赋值一般是先算右边吧,你这个是++p 和 p++的区别
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)