腾讯 4月26日笔试 3/5 我还能抢救一下吗?

腾讯 4月26日笔试 第1题 模拟队列 Golang
腾讯 4月26日笔试 第4题 两个栈模拟队列 C++
腾讯 4月26日笔试 第5题 第k层的祖先 Golang

3/5,不知道有没有戏,祝我好运。

第1题

package main

import "fmt"

func main() {
    var n,m,tp int
    var op string
    fmt.Scan(&n)
    for i:=0;i<n;i++{
        queue:=[]int{}
        fmt.Scan(&m)
        for j:=0;j<m;j++{
            fmt.Scan(&op)
            switch op {
            case "PUSH":
                fmt.Scan(&tp)
                queue= append(queue, tp)
                break
            case "TOP":
                if len(queue)>0{
                    fmt.Println(queue[0])
                }else{
                    fmt.Println(-1)
                }
                break
            case "POP":
                if len(queue)>0{
                    queue=queue[1:]
                }else{
                    fmt.Println(-1)
                }
                break
            case "SIZE":
                fmt.Println(len(queue))
                break
            case "CLEAR":
                queue=queue[:0]
                break
            default:
                break
            }
        }
    }
}

第4题

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> a,b;
    int n;
    cin >> n;
    string op;
    int num;
    while (n--) {
        cin >> op;
        if (op == "add") {
            cin >> num;
            b.push(num);
        }else if (op == "poll") {
            if (a.empty()) {
                while (!b.empty()) {
                    a.push(b.top());
                    b.pop();
                }
            }
            a.pop();
        }
        else if (op == "peek") {
            if (a.empty()) {
                while (!b.empty()) {
                    a.push(b.top());
                    b.pop();
                }
            }
            cout<<a.top()<<endl;
        }
    }
}

第5题

完全树的特征:节点k的父亲为k/2,左子为2k,右子2k+1。

package main

import "fmt"

func main() {
    var n,val,layer int
    fmt.Scan(&n)
    for i:=0;i<n;i++{
        fmt.Scan(&val,&layer)
        i:=1
        com:=1
        for com<=val{
            com*=2
            i++
        }
        i--//找到节点val所在的层
        if layer>=i{
            fmt.Println(-1)
            continue
        }
        ans:=val
        for j:=i;j>layer;j--{
            ans/=2
        }
        fmt.Println(ans)
    }
}
#腾讯2021届暑期实习正式批笔试##腾讯##笔试题目#
全部评论
比楼主还菜,最后一题通过50%不知道为啥
点赞 回复
分享
发布于 2020-04-27 09:24
官网笔试流程状态咋样了呀?
点赞 回复
分享
发布于 2020-04-30 11:34
联易融
校招火热招聘中
官网直投
同,就做出这几道。最小距离的暴力来复杂度太高了没过
点赞 回复
分享
发布于 2020-05-01 21:43

相关推荐

点赞 3 评论
分享
牛客网
牛客企业服务