avatar
485用usps priority mail邮寄# Immigration - 落地生根
b*r
1
面试之前在这里看了很多面经。非常感谢大家。现在贡献一下我的。顺便求一下bless
,希望能拿到心仪的offer。
new grad full time position. 一个白人小哥面的。
上来先讲了讲research。感觉就没答好。他问了一个我简历里research的一个linear
programming的细节,但是我其实只是用了一点皮毛,对深层的原理不是很理解。结果
花了很多时间在这块还没答到重点。教训就是,不是特别在行的东西千万别放简历上。
然后就是coding,一共三题,这时候离结束就只有40分钟了,时间不怎么够。
1. 去除string中的空白
2. largest rectangle in histogram
3. 把regular expression tree 转换成表达式string
最后一题没写完就到只剩下五分钟了。小哥让我停下来跟我介绍了他的组,并且问问我
有什么问题之类。然后就结束了。题目都没答完肯定是没戏了。move on准备下一场。
祝各位找工作的都顺利!
忘了说了,电话打来晚了七分钟。有了这七分钟我最后一题肯定能写完的。郁闷!
avatar
w*0
2
当时填的是那个po box地址
现在状态是Notice Left (No Authorized Recipient Available)
uscis的人会去邮局取这个邮件吗?
avatar
P*r
3
第三题是神马啊 没看懂
白人小哥很容易过的~
avatar
S*t
4
会的。不用担心。
avatar
z*0
5
楼主如果是女的,过的希望很大

【在 P**********r 的大作中提到】
: 第三题是神马啊 没看懂
: 白人小哥很容易过的~

avatar
w*0
6
多谢!
avatar
b*r
7
就是有个数学表达式树
+
/ \
1 *
/ \
5 6
这样的。要返回1+(5*6)

【在 P**********r 的大作中提到】
: 第三题是神马啊 没看懂
: 白人小哥很容易过的~

avatar
P*r
8
我看出来她是女的了。。所以说容易过。。。

【在 z****0 的大作中提到】
: 楼主如果是女的,过的希望很大
avatar
A*i
9
第一题是不是String.split("\S+")
然后再toString()?
avatar
x*0
10
不行吧!
最多用charAt(), length(),其它都不能用啊

【在 A*****i 的大作中提到】
: 第一题是不是String.split("\S+")
: 然后再toString()?

avatar
x*0
11
这个就是inorder对么?
但是括号怎么弄呢

【在 b*******r 的大作中提到】
: 就是有个数学表达式树
: +
: / \
: 1 *
: / \
: 5 6
: 这样的。要返回1+(5*6)

avatar
Q*F
12
我想是
如果这个node同时有左右节点,那么在中序遍历的时候需要加个括号。

【在 x******0 的大作中提到】
: 这个就是inorder对么?
: 但是括号怎么弄呢

avatar
f*w
13
40分钟3道题……还觉得没戏……电面bar没那么高
avatar
l*o
14
一行就够了,s.replaceAll(" ", "");

【在 A*****i 的大作中提到】
: 第一题是不是String.split("\S+")
: 然后再toString()?

avatar
A*i
15
恩,这个更快

【在 l****o 的大作中提到】
: 一行就够了,s.replaceAll(" ", "");
avatar
l*o
16
楼主第二题是拿最优解答的?
avatar
f*w
17

那这样输出不是(1 + (5 * 6) )?

【在 Q**F 的大作中提到】
: 我想是
: 如果这个node同时有左右节点,那么在中序遍历的时候需要加个括号。

avatar
P*r
18
碰到数的时候如果是左子树加(右子树加)然后最后把最前和最后的括号去掉

【在 x******0 的大作中提到】
: 这个就是inorder对么?
: 但是括号怎么弄呢

avatar
b*r
19

没有。我用的dp的方法,而且怕出bug,用的二维dp。我知道可以用stack做,但是当时
一紧张想不起来怎么做了。这也是另一个觉得挂了的原因。

【在 l****o 的大作中提到】
: 楼主第二题是拿最优解答的?
avatar
b*r
20
因为没答好。除了第一题特别简单。其它第二题没有用最优解,第三题没写完。

【在 f*******w 的大作中提到】
: 40分钟3道题……还觉得没戏……电面bar没那么高
avatar
b*r
21
我思路用的先序遍历。每个subtree返回一个string。然后后和中间parent的operator
连接起来。如果subtree是叶子节点就不用加括号,否则加括号。

【在 Q**F 的大作中提到】
: 我想是
: 如果这个node同时有左右节点,那么在中序遍历的时候需要加个括号。

avatar
m*h
22
电面来说,这些题目挺难的,anyway,祝你顺利拿到Onsite
avatar
Q*F
23
除非这个面试的人假设被面试者看过类似的题目,然后要求最优解,这个可以理解,要
不然当场想答案很难想到用stack

【在 b*******r 的大作中提到】
: 我思路用的先序遍历。每个subtree返回一个string。然后后和中间parent的operator
: 连接起来。如果subtree是叶子节点就不用加括号,否则加括号。

avatar
Q*F
24
如果内用recursive的方法就很快。但是如果用iterative,还没有想到。

operator

【在 b*******r 的大作中提到】
: 我思路用的先序遍历。每个subtree返回一个string。然后后和中间parent的operator
: 连接起来。如果subtree是叶子节点就不用加括号,否则加括号。

avatar
l*o
25
嗯,其实我就说想说N^2解就够了。

【在 Q**F 的大作中提到】
: 除非这个面试的人假设被面试者看过类似的题目,然后要求最优解,这个可以理解,要
: 不然当场想答案很难想到用stack

avatar
Q*F
26
求code

【在 P**********r 的大作中提到】
: 碰到数的时候如果是左子树加(右子树加)然后最后把最前和最后的括号去掉
avatar
R*Z
27
面试官也许是想看到用一个read_idx和一个write_idx在一个char array里面in-place
地把space去除(把字符往前移),算是考基本功。

【在 l****o 的大作中提到】
: 一行就够了,s.replaceAll(" ", "");
avatar
P*r
28
struct TreeNode {
string val;
TreeNode *left;
TreeNode *right;
TreeNode(string x): val(x), left(NULL), right(NULL) {}
};
void getexp(TreeNode *root, string &result)
{
if(root->val == "+" || root->val == "-" || root->val == "*" || root->val
== "/")
{
result += '(';
getexp(root->left,result);
result += root->val;
getexp(root->right, result);
result += ')';
}
else
{
result +=root->val;
}
}
string expressiontree(TreeNode *root)
{
string result;
if(root == NULL) return result;
getexp(root, result);
return result.substr(1, result.size()-2);
}

【在 Q**F 的大作中提到】
: 求code
avatar
k*f
29
我也贴一个:
struct TreeNode
{
TreeNode * left, *right;
string val;
TreeNode(string i) :val(i), left(NULL), right(NULL){}
};
bool IsOperator(const string & c)
{
if (c.length() > 1 || (c[0] >= '0' && c[0] <= '9'))
{
return false;
}
return true;
}
string ExpressionTreeToString(TreeNode * node)
{
if (node == NULL)
return "";
string ret = node->val;
if (IsOperator(node->val))
{
if (node->left)
{
if (IsOperator(node->left->val))
{
ret.insert(0, "(" + ExpressionTreeToString(node->left) + ")
");
}
else
{
ret.insert(0, ExpressionTreeToString(node->left));
}
}
if (node->right){
if (IsOperator(node->right->val))
{
ret += "(" + ExpressionTreeToString(node->right) + ")";
}
else
{
ret += ExpressionTreeToString(node->right);
}
}
}
return ret;
}
avatar
t*i
30
同感。

【在 m*******h 的大作中提到】
: 电面来说,这些题目挺难的,anyway,祝你顺利拿到Onsite
avatar
l*4
31
s=s.trim()

【在 l****o 的大作中提到】
: 一行就够了,s.replaceAll(" ", "");
avatar
l*o
32
这个只去头尾啊少年。

【在 l***4 的大作中提到】
: s=s.trim()
avatar
l*b
33
第三题是正则表达式? 正则表达式不是字符串匹配的么?。。bless lz吧 我也快面了
avatar
l*b
34
诶 自己试着做了一下这些题 40分钟是不是有点难啊。。答差不多就行还是要完美解答呢
比如第一题 虽然简单 但是面试官说一下题 你跟他讨论一下解法 分析一下时间复杂度
然后开写 写完他再看看。。感觉起码5分钟吧。。剩下35分钟 刚才试了一下直方图
那道题我做了很多次。。。。所以10分钟练回忆思路带上写代码 基本写出来 但是还有
小bug (主要左右边界情况) 然后再检查一下 顺着带入几个边界值 再改。。20分钟
过去了 还不算跟面试官解释思路的时间 还有测试啊讨论复杂度啊。。。。
那第三题就只剩15分钟了。。。。。一般第三题都比较难吧 包括这个第三题也挺难的
没做过 理解+讨论3分钟 就算不用想 跟面试官沟通也好3分钟吧。。还剩10分钟不到。
根本来不及实现+ debug + 给testcase。。。
可能是我比较愚钝。。但是我觉得除非是做过的而且特别熟的题 否则2,3题这种难度的
。。根本不可能35分钟写两道吧。。ood或者系统设计好歹想到什么就能说什么 算法题
我觉得还是需要点时间思考的。。。前路好悲观。。。
avatar
l*c
35
第3题需不需要考虑优先级?
如果当前的运算符号是+,儿子节点也是+,或者乘法,就不用加括号?
如果当前运算符是×,但儿子是+,则需要加个括号吧
avatar
b*r
36
我问了面试官。不用考虑优先级。

【在 l***c 的大作中提到】
: 第3题需不需要考虑优先级?
: 如果当前的运算符号是+,儿子节点也是+,或者乘法,就不用加括号?
: 如果当前运算符是×,但儿子是+,则需要加个括号吧

avatar
b*r
37
也Bless你咯

【在 l*********b 的大作中提到】
: 第三题是正则表达式? 正则表达式不是字符串匹配的么?。。bless lz吧 我也快面了
avatar
t*i
38
LZ过了吧?别忘了回来update阿。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。