腾讯2018秋招正式笔试题目小结

腾讯2018秋招正式笔试题目小结

背景介绍

腾讯作为中国科技领域的佼佼者,每年都会举行大规模的招聘,吸引着众多优秀的应聘者前来。其中,笔试是选拔过程中的重要环节,也是一个入职的关键。本文旨在对腾讯2018秋招正式笔试的题目进行详细的分析和总结,帮助广大应聘者更好地进行准备。

题目类型

腾讯2018秋招正式笔试共分为两个部分:编程题和客观题。编程题主要考察应聘者的算法和编程能力,客观题则主要考察应聘者对计算机基础知识的掌握程度。

编程题分析

题目总体情况

腾讯2018秋招正式笔试编程题总共有4道,分别为:

  1. 二叉树遍历
  2. 统计数字
  3. 小Q的歌单
  4. 火车进站

其中前两道属于基础题型,难度适中,后两道则属于中高难度,需要较强的算法能力。

解题思路

在考试中,题目的解题思路是非常重要的一环。以下将对每道题目的解题思路进行详细分析:

1. 二叉树遍历

此题考察基础的二叉树遍历算法,主要思路如下:

  • 前序遍历:根节点 -> 左节点 -> 右节点
  • 中序遍历:左节点 -> 根节点 -> 右节点
  • 后序遍历:左节点 -> 右节点 -> 根节点

此外,此题需要注意空节点的处理方法和输出格式。

2. 统计数字

此题考察基础的字符串操作和数据统计能力,主要思路如下:

  • 将输入的字符串按照非数字字符分割为一个字符串数组
  • 对于每个字符串,使用正则表达式匹配提取其中的数字,并统计数量

此外,此题需要注意数字可能为负数的情况,以及输出结果的格式。

3. 小Q的歌单

此题考察动态规划能力,需要用到排列组合和递推,主要思路如下:

  • 使用二维数组A[i][j]表示i首歌单中添加j首A歌曲的方案数
  • 根据排列组合和递推的公式,可以得到A[i][j]与A[i-1][j-1]和A[i-1][j]之间的关系,然后进行递推计算即可

此外,此题需要注意数据范围和输出结果的格式。

4. 火车进站

此题考察基础的栈的操作和递归思想,需要进行深度优先搜索,主要思路如下:

推导过程比较复杂,请参考详细解析文章。

代码示例

以下为两道题目的代码示例:

1. 统计数字

import re

# 将输入字符串拆分为数字字符串列表
numbers = re.findall(r'\d+', input())

# 统计数字
if numbers:
    count = len(numbers)
    if '-' in numbers:
        count -= 1
    print(count)
else:
    print(0)

2. 小Q的歌单

# 输入数据
n = int(input())
m = int(input())
k = int(input())

# 初始化二维数组
dp = [[0] * (m + 1) for _ in range(n + 1)]
dp[0][0] = 1

# 递推计算
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if j > k:
            dp[i][j] = (dp[i - 1][j - 1] + dp[i - 1][j] * (j - 1)) % 1000000007
        else:
            dp[i][j] = (dp[i - 1][j - 1] + dp[i - 1][j]) % 1000000007

# 输出结果
print(dp[n][m])

客观题分析

题目总体情况

腾讯2018秋招正式笔试客观题总共有20道,题目涵盖了计算机基础、网络协议、操作系统、数据库、数据结构和算法等多个方面。

解题思路

客观题在解答时需要注意以下几点:

  • 仔细阅读题目和选项,避免选错
  • 注意每道题目的考点,有助于聚焦正确的答案
  • 对于不知道的问题,应该及时进行查阅,避免选错

代码示例

客观题部分不需要使用代码进行解答。

总结

腾讯2018秋招正式笔试中的编程题共有4道,客观题共有20道,题目难度参差不齐,覆盖面广泛。在考试中,应聘者需要充分做好准备,找到适合自己的解题思路,然后适时调整自己的答题节奏,把握好走向成功的机会。

以上是对“腾讯2018秋招正式笔试题目小结”的详细攻略,希望对广大应聘者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:腾讯2018秋招正式笔试题目小结 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • C语言数据结构之单链表存储详解

    C语言数据结构之单链表存储详解 什么是单链表 链表是一种非顺序存储的数据结构,其每个节点都保存下一个节点的地址。单链表是最简单的链表,每个节点只包含下一个节点的地址。 单链表节点的定义 单链表的节点定义一般包括两个部分:数据域和指针域。数据域存放节点的数据,指针域存放下一个节点的地址。 以下是单链表节点的定义: typedef struct node { i…

    数据结构 2023年5月17日
    00
  • Java数据结构及算法实例:插入排序 Insertion Sort

    Java数据结构及算法实例:插入排序 Insertion Sort 算法简介 插入排序是一种简单的排序算法,它的工作方式是每次将一个待排序的元素与前面已经排好序的元素逐个比较,并插入到合适的位置。插入排序的时间复杂度为O(n^2),是一种比较低效的排序算法。 算法实现 以下是使用Java语言实现插入排序算法的代码: public static void in…

    数据结构 2023年5月17日
    00
  • java数据结构实现顺序表示例

    如果想要实现一种数据结构,我们首先需要考虑它的存储结构。对于顺序存储结构,Java中的数组是一个很好的选择。下面就为大家分享关于Java数据结构实现顺序表示例的完整攻略,帮助读者更好地理解该数据结构的实现方式。 1. 定义一个顺序表数组 首先,我们需要定义一个数组类型的顺序表。这个顺序表可以使用泛型来表示各种类型的数据: public class MyArr…

    数据结构 2023年5月17日
    00
  • C语言数据结构中约瑟夫环问题探究

    C语言数据结构中约瑟夫环问题探究 什么是约瑟夫环问题? 约瑟夫环问题(Josephus problem)是一个经典的问题,据说是Flavius Josephus发现并命名的。该问题描述为,编号从1到n的n个人按照顺时针方向围坐成一圈,每人持有一个密码。从第1个人开始,顺时针方向每次完整的数m个人,然后让这m个人出圈并把他们的密码拿走不算。当到达队尾时,又从队…

    数据结构 2023年5月17日
    00
  • Java数据结构之堆(优先队列)详解

    Java数据结构之堆(优先队列)详解 概述 堆是一种基于树的数据结构,它可以用来解决很多问题,例如排序、优先队列等。在堆中,每个节点的值都小于或等于它的子节点的值。堆分为两种类型:最大堆和最小堆。在最大堆中,根节点的值最大;而在最小堆中,根节点的值最小。 堆的操作主要有以下两种: 插入:将一个元素插入到堆中,需要维护堆的性质,即节点的值小于或等于子节点的值。…

    数据结构 2023年5月17日
    00
  • Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)

    Java数据结构及算法实例:快速计算二进制数中1的个数 简介 本文将介绍在Java中快速计算二进制数中1的个数的算法。本算法是一种基于位运算的算法,其核心思想是利用位运算的快捷性,将原问题转化为每次计算一位是否为1的问题,使得计算速度大大提升。 背景知识 在理解本算法之前,需要了解Java中的一些背景知识: 1. 位运算 Java中的位运算符有如下几个: &…

    数据结构 2023年5月17日
    00
  • C语言实现数据结构迷宫实验

    C语言实现数据结构迷宫实验攻略 简介 迷宫是计算机图形学中的一个经典问题,也是数据结构和算法中常见的题目。C语言是一种广泛使用的编程语言,具有充分的编程接口和功能,可以方便地实现迷宫算法和数据结构。 本文将详细讲解C语言实现数据结构迷宫实验的完整攻略,让读者能够更加深入地理解迷宫算法和数据结构的应用。 实现步骤 1. 创建迷宫结构体 首先需要创建一个迷宫结构…

    数据结构 2023年5月17日
    00
  • JavaScript 数据结构之集合创建(1)

    当我们在编写JavaScript程序时,有时需要使用数据结构来组织和表示数据。其中之一是集合,它是一组无序且唯一的项的集合。这里就介绍如何在JavaScript中创建集合。 1. 集合定义 集合是一种不同于数组或对象,由一组彼此无关的元素组成的数据结构。集合中的元素是唯一的,即不允许重复元素。 2. 集合的操作 JavaScript中的集合可以支持以下常见操…

    数据结构 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部