腾讯2021校招笔试真题

图片说明

1、队列操作

【题目描述】
数据结构基础之一——队列
队列有五种基本操作,插入队尾、取出队首、删除队首、队列大小、清空队列。
现在让你模拟一个队列的操作,具体格式参考输入。
输入描述:
第一行输入一个整数T,表示接下来有T组测试数据。
对于每组测试数据:
第一行输入一个整数Q,表示有Q次操作。
接下来Q行,每行输入一种队列操作方式,具体格式如下:
初始状态下队列为空。
插入队尾:PUSH X
取出队首:TOP//仅仅是看一下队首元素,不要把队首元素删除
删除队首:POP
队列大小:SIZE
清空队列:CLEAR

1<=T<=100
1<=Q,x<=1000
保证操作为以上5种的任意一种。
输出描述:
对于每组测试数据:
如果操作为“取出队首”,输出队首元素,如果无法取出,输出“-1”
如果操作为“删除队首”,如果无法删除,输出“-1”
如果操作为“队列大小”,输出队列大小
其他操作无需输出
输入样例:
2
7
PUSH 1
PUSH 2
TOP
POP
TOP
POP
POP
5
PUSH 1
PUSH 2
SIZE
POP
SIZE
输出样例:
1
2
-1
2
1

【解题思路】
按题意描述的根据队列操作进行模拟即可。

【参考代码】
#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        int Q, x;
        cin >> Q;
        queue<int> q;
        while (Q--) {
            string s;
            cin >> s;
            if (s == "PUSH") {
                scanf("%d", &x);
                q.push(x);
            }
            if (s == "TOP") {
                if (!q.empty())
                    printf("%d\n", q.front());
                else
                    printf("-1\n");
            }
            if (s == "POP") {
                if (!q.empty())
                    q.pop();
                else
                    printf("-1\n");
            }
            if (s == "SIZE") {
                printf("%d\n", q.size());
            }
            if (s == "CLEAR") {
                while (!q.empty())
                    q.pop();
            }
        }
    }
    return 0;
}

2、第K小子串

【题目描述】 输入一个字符串 s,s 由小写英文字母组成,保证 s 长度小于等于 5000 并且大于等于 1。在 s 的所有不同的子串中,输出字典

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

如果你问:“什么时候你才真正觉得接近了秋招?” 那一定是:“收到牛客绿皮书那一刻” 连续六年, 整合各大名企秋招考题 只为做到校招届的【五年高考三年模拟】 20家大厂授权,本次公开 200页笔面试真题解析合集 4大互联网热门岗位 保姆级攻略—你的求职绿卡!

全部评论

相关推荐

牛牛不会牛泪:脉脉太多这种了,纯水军
点赞 评论 收藏
分享
09-17 19:25
已编辑
太原理工大学 游戏测试
叁六玖:公司名发我,我要这个HR带我打瓦
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务