l**********1 发帖数: 415 | 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函数?
如果是,怎么做是最好呢? | s*******n 发帖数: 499 | 2 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函数。
| f*******t 发帖数: 7549 | 3 你问的1),我给了code啊,就在你回复前面:
http://www.mitbbs.com/article_t1/JobHunting/31998803_0_2.html
具体逆波兰是什么,wiki上写得很详细。
你问的3)是经典题,leetcode上应该有答案 | i*******6 发帖数: 107 | 4 2) 和array[mid-1],array[mid+1]比较,选择上升的那一边 | H***e 发帖数: 476 | 5 第一题,
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函数。
| h*c 发帖数: 1859 | 6 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
| z******t 发帖数: 59 | 7 第三题,复杂链表的复制,可以参考:
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函数。
|
|