TME2022校园招聘前端开发岗位笔试(II)

时长:120分钟 总分:100分

155浏览 0人已完成答题

题型介绍
题型 填空题 简答题
数量 3 1
1.
循环右移二叉树
问题详情

现有一棵个节点构成的二叉树,请你将每一层的节点向右循环位移位。某层向右位移一位(即)的含义为:
1.若当前节点为左孩子节点,会变成当前节点的双亲节点的右孩子节点。
2.若当前节点为右儿子,会变成当前节点的双亲节点的右边相邻兄弟节点的左孩子节点。(如果当前节点的双亲节点已经是最右边的节点了,则会变成双亲节点同级的最左边的节点的左孩子节点)
3.该层的每一个节点同时进行一次位移。
4.是从最下面的层开始位移,位移完每一层之后,再向上,直到根节点,位移完毕。

如果从最后一层开始对该二叉树的每一层循环位移位。以下方二叉树为例,

      1
     / \
    2   3
       / \
      4   5
位移最后一层,5变成2的左孩子节点,4变成3的右孩子节点,如下图:
      1
     / \
    2   3
   /     \
  5       4
再位移倒数第二层,3变成1的左孩子节点,2变成1的右孩子的节点,它们的孩子节点随着一起位移,如下图:
      1
     / \
    3   2
    \   /
     4 5
根节点没有双亲节点,不用位移,位移完毕

现在给你这棵二叉树,请你返回循环右移位后的二叉树。
2.
二进制取反
问题详情

有一个二进制字符串,可以选择该串中的任意一段区间进行取反(可以进行一次或不进行),取反指将变为,将变为。那么取反之后的可能的最大的字典序是多少呢。如有,将区间取反变为是字典序最大的。

3.
k进制下一的个数
问题详情

进制下中数字出现的次数,记作。例如,因为三进制,数字出现了次。牛牛现在给你,他想知道,最小的是多少呢。请你返回的值。

4.
这段代码执行后,打印的结果是什么,为什么会是这样? ```js funct...
问题详情

这段代码执行后,打印的结果是什么,为什么会是这样?
             

```js
function test() {           

    getName = function() { 
        Promise.resolve().then(() => console.log(0)) 
        console.log(1)               

    }

    return this 
}
test.getName = function() { 
     setTimeout(() => console.log(2), 0) 
     console.log(3)               

}
test.prototype.getName = function() {    

     console.log(4) 
}       
var getName = function() { 
     console.log(5)             

}
function getName() {

     console.log(6) 
}      
      
test.getName() 
getName() 
test().getName() 
getName()  
new test.getName()
new test().getName()
new new test().getName()
```