Nutanix面试体验|第一套(校园实习)

Nutanix参观了我的校园。总共有3轮:

null

第1轮(编码轮): 2个问题需要在1小时15分钟内解决。 问题1: 给定一个字符串,确定它是否为“总和字符串”。如果字符串满足以下属性,则称为总和字符串: len(s)>3 子串(i,x)+子串(x+1,j)=子串(j,l) 例子: “12358”是一个求和字符串。说明:1+2=3;2+3 = 5 ; 3+5 = 8 “199100199”是一个求和字符串。说明:1+99=100;99+100 = 199 “2368”不是求和字符串。

问题2: 给定两个字符串s1和s2,确定s2是否是s1的混洗。其中,shuffle定义为在二叉树中切换一个节点的两个子节点的操作。

Example:
s1 = great
s2 = taerg

binary tree for s1
     great
     /    
    gr     eat
    /     /   
   g  r   e    at

after shuffle we obtain,
      great
    /     
   eat     gr  (shuffle gr and eat as they are children of great node)
   /      /  
  at   e    r    g
 /  
t    a

所以taerg是s1的shuffel串。 这是一个棘手的问题。 12名学生有资格进入下一轮。我解决了第一个问题的所有测试用例和第二个问题的5个测试用例。所以我被选为第二轮。

第二轮: 我被要求解决一个动态规划问题。给定一组仅由运算符(+和*)分隔的数字。然后用括号括起字符串,这样我们可以先从字符串中得到可能的最大值,然后从字符串中得到可能的最小值。返回两个计算值之差。我必须在纸上解决这个问题,并解释整个方法。我花了30分钟在纸上完成了代码和解释。然后面试官测试了我的代码的一些简单情况:2*2+2=>最大值是2*(2+2)=8,最小值是(2*2)+2=6。 然后他问我有什么问题要问他。 我的解决方案和编码风格给他留下了深刻的印象,干净整洁的注释和驼峰式的变量。 包括我在内,共有6名学生入围第三轮。

第三轮: 面试官让我调试一个包含读写器锁的代码。这是一个操作系统问题,是读者-作者问题的修改版。我指出了代码的5个问题,语法和逻辑都有。出现死锁情况、写后不一致、写后不一致、if-then-else错误和语法错误。我花了10分钟指出所有问题并编写正确的代码。面试官的手机上有秒表,我5分钟后才知道。

如果你喜欢Geeksforgek,并想贡献自己的力量,你也可以写一篇文章,然后把你的文章发到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享