avatar
新闻从业者 :)# Joke - 肚皮舞运动
l*1
1
今天看到几道a家onsite不太懂,求讨论,求大牛给code
1)写一段代码,给一个字符串,例如"30*(5+10)",输出计算结果。
知道大概是用两个stack,但有好多细节不懂,如怎么只扫描一个这个字符串就把数字
和operator放在两个stack里?还有就是如何在存operator的stack中定义优先级?
2)现在给定一个函数,f(x),x在某值之前是非递减的,在某值之后是非递增的。设计一
个算法快速查找这个值。
知道应该改binary search,但具体的判定array[middle]的条件有什么好的想法?怎么
选择仍哪一半啊?因为array[middle]可能同时大于或小于array[start],array[end]
3)有一个奇怪的linkedlist,除了next pointer还有一个random pointer指向一个随机
的节点。问如何实现clone函数。
这个题貌似很多地方都考,没大看懂题意,是问如何实现linkedlist里的clone函数?
如果是,怎么做是最好呢?
avatar
z*c
2
avatar
s*n
3
3在微软编程之美里面有

计一

【在 l**********1 的大作中提到】
: 今天看到几道a家onsite不太懂,求讨论,求大牛给code
: 1)写一段代码,给一个字符串,例如"30*(5+10)",输出计算结果。
: 知道大概是用两个stack,但有好多细节不懂,如怎么只扫描一个这个字符串就把数字
: 和operator放在两个stack里?还有就是如何在存operator的stack中定义优先级?
: 2)现在给定一个函数,f(x),x在某值之前是非递减的,在某值之后是非递增的。设计一
: 个算法快速查找这个值。
: 知道应该改binary search,但具体的判定array[middle]的条件有什么好的想法?怎么
: 选择仍哪一半啊?因为array[middle]可能同时大于或小于array[start],array[end]
: 3)有一个奇怪的linkedlist,除了next pointer还有一个random pointer指向一个随机
: 的节点。问如何实现clone函数。

avatar
B*e
4
绝了
avatar
r*e
6
哈哈,这个很棒!

【在 z**c 的大作中提到】

avatar
i*6
7
2) 和array[mid-1],array[mid+1]比较,选择上升的那一边
avatar
B*e
8
笑了。。。
avatar
H*e
9
第一题,
operator用stack(A), 数字的不用,就用array(B)
第一步,转化成postfix,
遇到数字,直接写进B,
遇到括号,左括号push进A,右括号pop A until found 右括号,括号本身不放进B
遇到operator,pop A and write popped的元素到B, 这个pop什么时候停呢?只到你看
见一个operator having lower priority
当得到postfix后,就好办了,再用一个stackC处理B
遇到数字写进去C,遇到operator,连续从C pop出两个数字用operator算结果,再push
进C
最后就是结果
我知道很费解,很难说
规则大概就是这样,可以去网上查查。

计一

【在 l**********1 的大作中提到】
: 今天看到几道a家onsite不太懂,求讨论,求大牛给code
: 1)写一段代码,给一个字符串,例如"30*(5+10)",输出计算结果。
: 知道大概是用两个stack,但有好多细节不懂,如怎么只扫描一个这个字符串就把数字
: 和operator放在两个stack里?还有就是如何在存operator的stack中定义优先级?
: 2)现在给定一个函数,f(x),x在某值之前是非递减的,在某值之后是非递增的。设计一
: 个算法快速查找这个值。
: 知道应该改binary search,但具体的判定array[middle]的条件有什么好的想法?怎么
: 选择仍哪一半啊?因为array[middle]可能同时大于或小于array[start],array[end]
: 3)有一个奇怪的linkedlist,除了next pointer还有一个random pointer指向一个随机
: 的节点。问如何实现clone函数。

avatar
t*o
10
呵呵

【在 z**c 的大作中提到】

avatar
h*c
11
check the C++ programming language

push

【在 H***e 的大作中提到】
: 第一题,
: operator用stack(A), 数字的不用,就用array(B)
: 第一步,转化成postfix,
: 遇到数字,直接写进B,
: 遇到括号,左括号push进A,右括号pop A until found 右括号,括号本身不放进B
: 遇到operator,pop A and write popped的元素到B, 这个pop什么时候停呢?只到你看
: 见一个operator having lower priority
: 当得到postfix后,就好办了,再用一个stackC处理B
: 遇到数字写进去C,遇到operator,连续从C pop出两个数字用operator算结果,再push
: 进C

avatar
m*r
12
good...
avatar
z*t
13
第三题,复杂链表的复制,可以参考:
http://zhedahht.blog.163.com/blog/static/2541117420108191047103

计一

【在 l**********1 的大作中提到】
: 今天看到几道a家onsite不太懂,求讨论,求大牛给code
: 1)写一段代码,给一个字符串,例如"30*(5+10)",输出计算结果。
: 知道大概是用两个stack,但有好多细节不懂,如怎么只扫描一个这个字符串就把数字
: 和operator放在两个stack里?还有就是如何在存operator的stack中定义优先级?
: 2)现在给定一个函数,f(x),x在某值之前是非递减的,在某值之后是非递增的。设计一
: 个算法快速查找这个值。
: 知道应该改binary search,但具体的判定array[middle]的条件有什么好的想法?怎么
: 选择仍哪一半啊?因为array[middle]可能同时大于或小于array[start],array[end]
: 3)有一个奇怪的linkedlist,除了next pointer还有一个random pointer指向一个随机
: 的节点。问如何实现clone函数。

avatar
a*c
14
good one

【在 z**c 的大作中提到】

avatar
s*7
15
good

【在 z**c 的大作中提到】

avatar
c*r
16
LOL
avatar
s*y
17
牛!

【在 z**c 的大作中提到】

avatar
k*i
18
大赞!
avatar
P*l
19
haha
avatar
c*7
20
ding!!!!!!!!!!!!!
avatar
g*5
21
english version?
avatar
v*m
22
good
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。