单选23道,46分;编程3道,60分;总分106。

单选记不得了,趁着代码思路还在,记录编程题如下(题目名字我乱起的):

一、字典序拼接

给一个数组,元素值非负。将数组中元素拼接起来,要求拼接后的数值最大。为了避免溢出,以字符串的形式输出拼接结果。

示例1:

输入:30,1

输出:301

个人测试用例:

输入:15,30,7,3,8

输出:8733015

题解:

先按字典序将数组从大到小排序,然后再拼接起来输出即可。

(1)为满足字典序排序,先遍历一遍数组,记录每个元素的长度,并找出最长的长度,即为max_length;

(2)对每个元素,使用ASCII码表中取值最大的字符,进行填充,使得每个元素的长度都等于max_length;

(3)使用python自带的排序函数list.sort(reverse=True),对数组元素进行排序(默认会按照字典序进行排列);

(4)将排序后的数组元素进行拼接,并剔除额外填充的ASCII字符,输出即可。

对于步骤(2)中选择ASCII码表中的值最大的字符进行填充,这里简单解释一下:

因为字典序的排序是从大到小,选择最大ASCII码值的字符进行填充,不会影响字典序的排列,例如B和BA,按字典序排列,应该是BBA,假设填充的字符为Z,那么BZ还是大于BA,排序之后是BZBA,剔除掉额外填充的字符Z之后,依然还是BBA。

代码实现如下(没有来得及提交,不知道AC情况):

def calc(arys):imax = 0nums = 0tns = []for item in arys:     # 找出数组中长度最长的元素,并记录其长度nums += 1tn = len(item)tns.append(tn)if tn > imax:imax = tn# 按照ASCII码表,使用最大的字符填充数组中元素,使得每个元素的长度都等于最长元素的长度for i in range(nums):arys[i] = arys[i] + '~'*(imax-tns[i])# 使用自带排序算法库函数,按字典排序arys.sort(reverse=True)print(''.join(arys).replace('~', ''))passif __name__ == '__main__':# line = input().split(',')line = ['15', '30', '7', '3', '8']calc(line)pass

二、视频点击

大概意思跟广告推荐有点像,就是给你一个视频(记为avid_from),你看了这个视频之后可能还会去点击其他相关的视频(记为avid_to),这样就形成了一条点击记录。现在请计算,哪个avid_from关联的视频数量最多,输出这个视频的ID,即avid_from。如果两个视频的关联数量相等,则输出ID较大的那一个。

示例:(示例很珍贵,比较幸运的是,直接一次100%AC,所以没有再考虑其他示例)

输入:

5(表示总共有几组数据)

33956 27538

79731 91415

25288 33956

33956 84925

79731 24288

输出:

79731

题解:

(1)使用字典结构,以avid_from作为key,对应的value为list,存储与其对应的所有avid_to;

(2)针对字典的每一个key,进行深度优先搜索遍历,并统计遍历到的元素数量,取元素数量最多的输出即可;

(3)另外,对于特殊情况,按照key的大小进行判别输出即可;

代码实现如下(AC 100%):

if __name__ == '__main__':num = int(input())ans = []dct = {}for i in range(num):line = input().split(' ')avid_f, avid_t = line[0], line[1]if avid_f not in dct.keys():dct[avid_f] = [avid_t]else:dct[avid_f].append(avid_t)imax = 0kys = list(dct.keys())rst = kys[0]for ky in kys:avid = dct[ky]count = len(avid)queue = []for item in avid:if item not in kys:continuequeue = queue + dct[item]while queue:kyt = queue.pop()count += 1if kyt not in kys:continuequeue = queue + dct[kyt]if count > imax:rst = kyimax = countif count == imax:if int(ky) > int(rst):rst = kyprint(rst)pass

三、逛展台

感觉上好像跟硬币组合差不多,我理个整体意思,大家仔细分辨。

给定一个数组,数组元素表示每个展台商品的价格(每个展台只有一个商品),然后给出总价值S,问最少需要几个展台的商品,才能使它们的价值大于等于S。

示例:

5 7

1 2 3 4 5

输出:

2

5表示有5个展台,下一行的[1,2,3,4,5]即是每个展台的商品价格。7是给定的总价值S。

题解:(有好思路的还请不吝赐教,谢谢!)

(1)采用的暴力方式,两个循环,第一个循环锚定起始元素,然后依次向右遍历,直到相加和大于等于S;

(2)特殊情况:数组和小于S时,输出-1;

代码实现如下(AC 60%):

def calc(ans, value):length = len(ans)imin = lengthfor i in range(length-1):start = ans[i]if start >= value:imin = 1breakcount = 1temp = startfor j in range(i+1, length):temp += ans[j]count += 1if temp >= value:breakif imin > count:imin = countreturn iminpassif __name__ == '__main__':line = input().split(' ')num, value = int(line[0]), int(line[1])ans = input().split(' ')ans = list(map(int, ans))if sum(ans) < value:print(-1)else:rst = calc(ans, value)print(rst)pass

以上即是个人的编程体验,还是太菜了?,大佬们如果有什么好的思路或见解,还请不吝赐教,谢谢~

哔哩哔哩2020校园招聘算法笔试卷(二)相关推荐

  1. 哔哩哔哩2020校园招聘后端笔试卷(一)

    1. 在Java中下面哪个对类的声明是错误的?(C) A. public class MyClass{} B. class MyClass extends MySuperClass implement ...

  2. 哔哩哔哩2020校园招聘前端笔试卷(一)答案解析

    第一题: 同源策略:协议 http和https不同 域名 store.company.com和news.company.com不同 端口号:http默认 80/8080/3128/8081/9098 ...

  3. 哔哩哔哩2020校园招聘前端笔试卷(一)

    在数组里面找数的==>双指针 1.以下不是CSS伪类选择器的是? 2. ['1', '2', '3'].map(parseInt) ( ) ['1', '2', '3'].map((item, ...

  4. JS实现:哔哩哔哩2020校园招聘技术类笔试卷(二)

    测试及真题连接 1.输入两个表示复数的字符串,输出它们相乘的结果的字符串复数字符串用a+bi表示(a, b 为整数, i为虚数单位) const readline = require('readlin ...

  5. 哔哩哔哩2020校园招聘技术类笔试卷(二)

    1. 关于canvas和svg说法正确的是?(C) A. canvas支持事件处理器 B. canvas不依赖分辨率,缩放不失真 C. svg不依赖分辨率,缩放不失真 D. svg适合图像密集型的游戏 ...

  6. 哔哩哔哩2020校园招聘前端笔试题(卷一)

    1.下面哪几个和 [http://store.company.com/dir/page.html] 符合同源策略?( ) A. http://store.company.com/dir2/other. ...

  7. 中信银行信用卡中心2020校园招聘风险管理类 | 一面+二面(2019.10.12-13)

    岗位 :风险管理类 地点:深圳 时间线: 10.12 一面(群面) 10.13 二面(HR面) ? 「更多我的秋招经验贴」 <2020我的秋招总结帖 [数据分析岗] | 目录索引> 一.一 ...

  8. 乐信2020校园招聘数据笔试题[试题整理]

    1. DB.DBMS和DBS三者之间的关系是 正确答案: B DB包括DBMS和DBS DBS包括DB和DBMS DBMS包括DB和DBS 不能相互包括 DBS(Database System) 包含 ...

  9. B站校园招聘后端笔试题(一)

    大家好,我是勾玉! 今天,我给大家带来了哔哩哔哩2020校园招聘后端笔试题,包括28道选择题和3道编程题,因为内容较多,我将分三期来讲,对每道题都给出答案以及解释~ 1.在Java中下面哪个对类的声明 ...

最新文章

  1. 《Advanced PHP Programming》读书笔记
  2. GNU make manual 翻译( 一百五十四)
  3. Excel如何批量将表中的0替换成空值?同时不能影响正常数字中包含的0
  4. #pragma pack的作用
  5. iOS自动布局-VFL格式约束
  6. Android Service 服务(二)—— BroadcastReceiver
  7. ireport修改jrxml中的sql语句_SQL中的create table与insert into语句
  8. A Convolutional Neural Network for Modelling Sentences阅读笔记
  9. How UI5 element is rendered
  10. Vue项目中v-for无法渲染数据
  11. .sync 修饰符的理解
  12. 【心情】今天买了ZÈRTZ!
  13. 电气研究生做计算机视觉,UCI研究生电气工程专业排名!师哥带你瞬间拿下
  14. maven项目发布到tomcat后没有lib目录解决方案
  15. 第一章:x264视频制作meGUI工具下载
  16. OpenCV-图像处理- Java(读取与显示图片)
  17. fedora14安装
  18. RGB颜色与十六进制颜色码
  19. java门基础学习(五)
  20. python怎么读是啥意思-python怎么读?python的含义和读音!

热门文章

  1. 引才!博士60万、硕士35万、本科28万,沿海城市
  2. 微信小程序基础而重要语法整理总结(数据绑定、运算表达式、循环渲染、条件渲染、事件绑定(传参))
  3. qdialog 圆角_QT 使用QSS实现圆角对话框
  4. cxxxxx和xxxxx.h的区别
  5. 使用 Prometheus-Operator 监控 Calico
  6. FFplay文档解读-16-音频过滤器一
  7. 一种可能的原因:‘utf-8‘ codec can‘t decode byte 0x82 in position 16: invalid start byte错误
  8. postgresql表复制
  9. css去除图片或元素的背景颜色【透明】
  10. 【基于QMediaPlayer的简易视频播放器】— 3、结合QSlider实现播放进度控制和音量控制