华为2020校招-软件题
一共3道编程题,总体难度不高,没有出现比较难的算法,但是可能文字和逻辑理解上相对比较重要。
第一题(难度不高 AC)
按规则传播信息,输出所有可能传播的站点对 输入: A={1,3,5},B={2,4,6},R=1 输出: (1,2)(3,4)(5,6)
def Toint(list):for i in range(len(list)):list[i]=int(list[i])a = input().split('=')
A = a[1].split('}')[0][1:].split(',')
Toint(A)
B = a[2].split('}')[0][1:].split(',')
Toint(B)
R = int(a[-1])for i in A:num=0for j in B:if i>j:continueelse:if j-i<=R:num+=1print('(%d,%d)'%(i,j),end='')else:breakif num==0:for j in B:if i<=j:print('(%d,%d)' % (i, j),end='')break
第二题(难度不高 AC)
句子按词进行反转,但是要注意各种特殊符号有不同的意义 输入: I am an 20-years out--standing @@ * -stu- dent 输出: dent stu standing out 20-years an am I
def _test(word):key = word.split('-')res = []if len(key)==1:return keyelse:# print('>',key)i = 0while True:if i>=len(key)-1:breakif key[i]!='' and key[i+1]!='':# 可能出现多个-的连接词res.append(key[i]+'-'+key[i+1])i+=2elif key[i]!='':res.append(key[i])i+=1if i==len(key)-1:if key[i]!='':res.append(key[i])# print(res)return resdef test2(string):a = []start = 0key = Truefor i in range(len(string)):if (string[i]>='a' and string[i]<='z') \or (string[i]>='A' and string[i]<='Z') \or string[i]=='-' \or (string[i]>='0' and string[i]<='9'):key = Truecontinueelse:if key:a.append(string[start:i])key = Falsestart = i + 1if key:a.append(string[start:])return a# print('a'>='a' and 'a'<='z')a = input().split(' ')
# print(a)
res = []
for i in a:st = _test(i)res.append(st)
# print(res)res1 = []
for i in res:for string in i:res1.extend(test2(string))# print(res1)
res1.reverse()
# print(res1)
result = ''
for i in res1:if i !='':result= result+' '+i
print(result[1:])
第三题(80% 没考虑周全)
对原有航班进行更新,但更新过程会出现覆盖更新,以及同航班座位重复问题,需要分开保存数据 采用四个字典 一字典 pace1 存储 按元组进行检索的字典 (航班,座号):姓名 ->原座位表 二字典 pace2 存取 姓名:(航班,座号)->去除了人的重复 三字典 pace3 按照二字典 反向存储 得到(航班,座号):姓名 ->去除了座位的重复 四字典 存取各个航班中的座位号 输入: 3 CZ7132,A1,ZHANGSAN CZ7132,A2,ZHAOSI CZ7156,A2,WANGWU 2 CZ7132,A1,CZ7156,A2 CZ7156,A2,CZ7156,A3 输出: CZ7132,A2,ZHAOSI CZ7156,A2,ZHANGSAN CZ7156,A3,WANGWU
# 进行字典的键值交换
def space(dic):dict_space = {}for i in dic.items():# print(i)for j in i[1]:dict_space[j]=i[0]return dict_space# 进行字典的键值交换 保留了同姓名的不同航班
def space_name(dic):dict_space = {}for i in dic.items():# print(i)if i[1] not in dict_space:dict_space[i[1]]=[i[0]]else:dict_space[i[1]].append(i[0])return dict_spaceN = int(input())
pace1 = {}for i in range(N):a = input().split(',')pace1[(a[0],a[1])]=a[2]pace2 = space_name(pace1)
new_pace ={}
# print(pace2)
M = int(input())
for i in range(M):a = input().split(',')# print(a)name = pace1[(a[0],a[1])]# print(name)key = [i[0] for i in pace2[name]]try:inde = pace2[name].index((a[0],a[1]))pace2[name][inde] = (a[2], a[3])new_pace[(a[2],a[3])]=nameexcept:pace2[name].append((a[2], a[3]))for name in pace2.keys():key = pace2[name].copy()se = {}for i in key:se[i[0]]=inew = []for i in se.keys():new.append(se[i])pace2[name]=new# print(pace2)pace3 = space(pace2)
# print('3',pace3)pace4 ={}
for i in pace3.keys():hang = i[0]num = i[1]if hang not in pace4.keys():pace4[hang]=[num]else:pace4[hang].append(num)
# print(pace4)
hang_sort = list(pace4.keys())
hang_sort.sort()
# print(hang_sort)
for i in hang_sort:nums = pace4[i]nums.sort()# print(nums)for j in nums:print('%s,%s,%s'%(i,j,pace3[(i,j)]))
华为2020校招-软件题相关推荐
- 华为2020校招软件开发岗全流程,已签约
面试是在9月11号,时间有点久了,我应聘的是通用软件开发工程师,公共开发部门 华为面试分两部分,两个专业面,一个部门总管面试 专业面确实就是专业面,因为华为很重视一个方向,就是你的专业知识与你应聘的岗 ...
- 华为2020校招笔试编程题 看这篇就够了(上)
背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...
- 小米2020校招软件开发工程师笔试题一
1. 下列关于设计模式说法错误的是(B) A. 装饰器模式在实现过程中一般不会更改被封装对象的接口定义 B. 适配器模式以不改变被适配对象的接口定义为目的对其进行改造 C. 用饿汉方式实现的单例模式是 ...
- 【小红书】2020校招编程题
目录 1.薯券使用问题 2.笔记草稿 3.笔记精选 4.倒卖战利品 5.字符串倒序 6.迷宫游戏 1.薯券使用问题 某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多 ...
- 小红书校招java_【小红书】2020校招编程题
目录 1.薯券使用问题 2.笔记草稿 3.笔记精选 4.倒卖战利品 5.字符串倒序 6.迷宫游戏 1.薯券使用问题 某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多 ...
- 小红书2020校招算法题(三)
目录 一.笔记草稿 二.笔记精选 一.笔记草稿 题目描述: 薯队长写了一篇笔记草稿,请你帮忙输出最后内容. 输入字符包括,"(" , ")" 和 "& ...
- 爱奇艺2020校招编程题汇总第一题(切方块问题)
链接:https://www.nowcoder.com/questionTerminal/29f9a255e8964bb0a097b5c125543dd8?answerType=1&f=dis ...
- 哔哩哔哩2020校招原题 - 复数乘法
目录 1.题目解读 2.解题思路 3.代码示例 1.题目解读 题目描述: 输入两个表示复数的字符串,输出它们相乘的结果的字符串. 复数字符串用 a + bi 表示(a,b 为整数,i 为虚数单位,i^ ...
- 小米2020校招软件开发工程师笔试题二
https://blog.csdn.net/Yuudachi/article/details/104090132
最新文章
- POJ 1414 Life Line(搜索)
- Reddit票选 | 2019年绝对不能错过的机器学习论文
- 浏览器刷新再次升级!不同浏览器窗口
- 借助acs来实现telnet、ssh的远程认证
- 关于CSS属性display:none和visible:hidden的区别
- Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示
- JAVA js的escape函数、解析用js encodeURI编码的字符串、utf8转gb2312的函数
- nodeJs 是什么?你需要先想清楚这个问题,才能学习nodejs (介绍)
- Oracle存储过程快速入门
- AngularJS中ng-options简单用法及预选项失败的原因
- 编译型语言VS解释型语言、动态语言、静态语言
- 利用ModelBinder防止XSS一次尝试
- mysql 最大建议行数2000w,靠谱吗?
- C# SolidWorks二次开发-工程图-更换工程图图纸格式/模板
- mac 打开虚拟机之后,原MAC没有声音解决方法
- dell计算机一直重启,dell开机无限循环重启如何处理
- 华为如何开启找回服务器,华为服务器BIOS恢复出厂设置
- GPS纠偏算法,适用于google,高德体系的地图
- ERDAS 2015 64位破解安装教程
- 【C++】limits头文件 numeric_limits