深信服2020秋招笔试真题

深信服2020秋招笔试真题

1、混淆报表

【题目描述】深信服项目经理在汇总一份报表,为避免部分敏感信息泄露,涉及到对报表数字的加密。

现在找到你,需要你来帮忙,实现一个算法,把报表内的数字进行加密:

对于指定的有符号整数n,你需要将这个n中的数字反转来实现混淆。

输入描述

第一行输入一个数字

输出描述

输出反转后的数字

备注

假设硬件只能支持32位的有符号整数,则其数值范围为 [−231,231− 1]。基于这个前提,如果反转后整数溢出那么就返回0。

示例1

输入


123


输出


321


示例2

输入


-234


输出


-432


示例3

输入


110


输出


11


【参考代码】


import sys
n = int(sys.stdin.readline())
 
def revert(x):
    if x >= 0:
        result = int(str(x)[::-1])
        if result - (2 ** 31 - 1) < 0:
            return result
        else:
            return 0
    else:
        result = -int(str(x)[-1:0:-1])
        if result > -2 ** 31 - 1:
            return result
        else:
            return 0
 
 
print(revert(n))


2、十进制数字

【题目描述】对于十进制数字,可以用普通的十进制表示法,比如2020,也可以使用科学计数法,比如 2020e2020。

编写代码,验证指定的字符串是否可以解释为合法的十进制数字。

输入描述

第一行接收需要判断的字符串

输出描述

结果为真,则输出1,否则输出0

备注

在实现代码之前,你应当事先思考所有可能的情况。这里给出一份可能存在于有效十进制数字中的字符列表:
- 数字 0-9
- 指数  "e"
-  正/负号  "+"/"-"
- 小数点  "."

示例1

输入


0


输出


1


示例2

输入


0.1


输出


1


示例3

输入


abc


输出


0


示例4

输入


-90e3


输出


1


【解题思路】

直接由正则表达式匹配判断即可。

【参考代码】


import sys
import re
 
s = sys.stdin.readline()
 
# code here
s = s.strip()
if bool(re.match(r'^[+-]?(\d+)?(\.\d+)(e[-+]?\d+)?$', s)
       &nbs***bsp;re.match(r'^[+-]?(\d+)(\.\d*)?(e[-+]?\d+)?$', s)):
    print(1)
else:
    print(0)


3、军训方阵

【题目描述】大学新生军训时,根据性别、班级、升高等将所有的新生分为若干个连队(每个连队的人数可能不一致),军训结束后统一阅兵时,希望将所有的连队排列成一个大致规整的矩形方阵,每一行的最大人数(MaxCount)可以手动指定。

要求:

1. 连队的顺序不可改变。

2. 所有的学生前后需要对齐。

3. 每个连队的学生必须在同一行。(MaxCount会大于等于 每一个连队的人数)。

4. 同一连队的学生必须左右相邻,即之间不能有空位,而不同连队的学生之间可以有空位。

5. 如果一行只有一个连队时,需要连队站在整行的中间位置,如无法在正中间,则需要左边的空位比右边的空位多一个。

6. 如果一行有多个连队时,需要此行的最左边和最右边都站有人,连队之间可用空位分隔,要求尽可能均匀分配连队间的空位数量,如果某一行连队间的空位不能均匀分配,则左侧的空位数量要多于右侧的空位数量,且只能多一个。

输入描述

第一行依次输入每个连队的人数,以空格分隔
第二行输入最终方阵的每一行的最大人数

输出描述

最终方阵的展示信息。

备注

输出时,以+ 表示学生,以 - 表示空位。

示例1

输入


4 3 2 7 2 4 10 6 6 4 5 5 11
14


输出


++++---+++--++
+++++++-++++++ 
--++++++++++--
++++++--++++++
++++++++++++++
--+++++++++++-


说明

输入:共13个连队,每个连队的人数如上。最终方阵每行的最大人数为14
输出:
第一行:只能站3个连队,需要补充5个空位,左边的空位数量需要大于等于右边,且只能多一个
第二行:只能站3个连队,需要补充1个空位,左边的空位数量需要大于等于右边
第三行:只能站1个连队,需要补充4个空位,需要在整行的中间位置
第四行:只能站2个连队,需要补充2个空位,左右两边都需站人
第五行:刚好站3个连队,无需补充空位
第六行:只能站1个连队,需要补充 3个空位,需要在整行的中间位置,左边的空位数量需要大于等于右边

【参考代码】


# -*- coding: utf-8 -*-
import sys
import json
 
 
def print_out(out):

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

2021名企校招笔试真题-技术 文章被收录于专栏

&lt;p&gt; 本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题。 内容中包含多个名企的笔试真题,附有题目思路及参考代码 本专刊购买后即可解锁所有章节,故不可以退换哦~ &lt;

全部评论

相关推荐

牛至超人:把哈工大,再加大加粗,看见闪闪发光的哈工大字样,面试官直接流口水
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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