Python实现互联网笔试题-百度1、2
来源:互联网 发布:java jsonarray 编辑:程序博客网 时间:2024/05/16 15:38
百度2017实习生-数据挖掘/机器学习编程题1
(个人背景:控制工程硕士二年级,编程小白。)
1. 题目描述 : 为了节省信息传递的数据量,A公司内部经常用一种简单的压缩方法来处理端口地址。举例:
[001011:110011:101101:000000]→[1011:110011:101101:] (压缩)
[1011:1101::]→[100011:001101:000000:000000] (解压)
输入:第一行一个整数a,a为0时表示任务为压缩,a为1时表示任务为解压。
接下来第二行为一个字符串,表示输入程序的端口信息,保证端口信息只有“0”,"1",":"三种字符。
输出:输出为一行字符串,表示压缩或者解压后得到的端口信息。
样例输入:
0
001011:110011:101101:000000
样例输出:
1011:110011:101101:
时间限制:C/C++ 1000MS; 其他语言3000MS
内存限制:C/C++ 65536KB;其他语言 589824KB
这题读完题目感觉属于简单题。。。以下程序是我考完后一天思考写的(恩,考试的时候一道题都没做出来),版本是Python 2.7.13 。思路是用split()函数按冒号把输入的字符串存成4个元素的List,然后分别按元素处理。但为了输出的时候加上":",又把前三个字符串和最后一个分开处理了,程序有些冗余。还需改进。
import sysa = int(sys.stdin.readline())if a == 0: compress = sys.stdin.readline().strip().split(':') for i in range(3): if compress[i].startswith('0') and '1' in compress[i]: n = compress[i].find('1') compress[i] = compress[i][n:]+':' elif compress[i].startswith('1'): compress[i] = compress[i]+':' else: compress[i] = ':' sys.stdout.write(compress[i]) if compress[3].startswith('0') and '1' in compress[3]: n = compress[3].find('1') compress[3] = compress[3][n:] elif compress[3].startswith('1'): compress[3] = compress[i] else: compress[3] = '' sys.stdout.write(compress[3]) else: uncompress = sys.stdin.readline().strip().split(':') for i in range(3): uncompress[i] = uncompress[i].zfill(6)+':' sys.stdout.write(uncompress[i]) uncompress[3]=uncompress[3].zfill(6) sys.stdout.write(uncompress[3])
2. 题目描述 :小A是一个水环境研究员,她从各个监测站点收集不同的监测样本,她的研究重点为这些样本呈现的一些特殊的模式。为此,她编写了一个计算机程序来实时处理手机的数据,并确定哪些是她所感兴趣的,或者是可疑的。样本是否为感兴趣或认为可疑的需要满足一系列标准,如“样本值大于最近两小时的均值”或“样本值为最近5分钟的最小值”,诸如此类。
让小A困惑的是昨晚的程序输出结果,这也是她想你求助的原因。她觉得自己的程序输出结果似乎存在问题,希望你能够帮她验证。她给你所有的实验样本及测试条件,希望和你的输出结果进行比对并确定后续的工作。
输入:测试数据有多组,每组测试数据的第一行为一个整数N(1<=N<=10^5),表示实验样本数。随后的N行中每行表示一个样本,每行包含两个整数Ti和Vi(1<=Ti<=10^9, 1<=Vi<=10^4),表示Ti时采样的样本值为Vi。同一组样本中,样本的计时从过去某个时刻开始,以秒为单位,按时间递增的顺序排列。接下来的一行为一个整数C(1<=C<=10),为样本所需满足的条件数。随后的C行中,每行为一个条件项。每个条件项由空格分开的三部分构成:
1) 关系运算符R,可以是"gt"或"lt",表示大于或小于;
2) 集合函数F,可以是"min"、"max"或"avg",分别表示最大值、最小值和均值;
3) 单个整数L,表示所需考虑的时间段的长度。
一般来说,对样本的检验是将样本值Vi与Vi取样前的一段时间内取得的样本值集合的某个函数值进行比较,设Vi在时间Ti采样,Lj为Vi采样前的时间段,集合Sij为时间段(Ti-Lj, Ti)内采样到的所有样本(即样本Vi之间Lj时间段内采样的所有样本),则只有当关系“Vi Rj Fj(Sij)”成立时,样本Vi才满足条件Cj,如:某样本值为800,条件为“It min 300”表示“样本值800是否小于该样本采集前5分钟内的最小样本值?”,请注意,Vi不属于集合Sij。
输出:对每组测试数据中的每个条件,在单独的行中输出一个整数:满足给定条件的样本数量。若给定时间范围内没有样本,表示该条件不满足。
样例输入:
10
60 30
120 28
180 35
240 34
300 40
360 31
420 28
480 2
540 42
600 30
2
样例输出:
时间限制:C/C++ 1000MS; 其他语言3000MS
内存限制:C/C++ 65536KB;其他语言 589824KB
- Python实现互联网笔试题-百度1、2
- Python实现互联网笔试题-百度-关于排序sorted()函数
- 百度笔试题2
- 百度笔试题2
- 百度笔试题2
- 百度笔试题1
- 百度笔试题1
- 百度笔试题1
- Python实现互联网笔试题-今日头条-3个一组的试题
- FIFO页面置换算法实现(百度笔试题1)
- 20140920百度笔试题---实现static
- 百度部分笔试题2
- 关于互联网笔试题
- 2--百度2017春招笔试真题编程题集合--度度熊回家 (Python)
- 1--百度2017春招笔试真题编程题集合--买帽子(Python)
- 百度2015 在线笔试题(2)
- 百度笔试题1(个人整理)
- 百度实习生招聘笔试题1
- 30天自制操作系统中edimg的含义
- Unreal Open Day 2017 参会总结与心得
- C++ 常函数
- 安卓图片压缩
- 5.time
- Python实现互联网笔试题-百度1、2
- hdu 5236 Article 概率dp
- 秒杀多线程第七篇 经典线程同步 互斥量Mutex
- CSDN-markdown编辑器用法
- Hibernate的缓存机制
- PHP简易商城(一)概述
- CodeForces.71A Way Too Long Words (水模拟)
- OCR识别技术,车牌识别流程与重要性
- 秒杀多线程第八篇 经典线程同步 信号量Semaphore