一共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校招-软件题相关推荐

  1. 华为2020校招软件开发岗全流程,已签约

    面试是在9月11号,时间有点久了,我应聘的是通用软件开发工程师,公共开发部门 华为面试分两部分,两个专业面,一个部门总管面试 专业面确实就是专业面,因为华为很重视一个方向,就是你的专业知识与你应聘的岗 ...

  2. 华为2020校招笔试编程题 看这篇就够了(上)

    背景 近日一位在华为的师兄整理了一份内部的提纲给我们,想着以后肯定不会去华为,于是乎分享给大家,看看菊花厂今年的笔试题目是什么样子的. 编程题范围 这好像来自一个华为内部的文档,据说今年华为内部也在进 ...

  3. 小米2020校招软件开发工程师笔试题一

    1. 下列关于设计模式说法错误的是(B) A. 装饰器模式在实现过程中一般不会更改被封装对象的接口定义 B. 适配器模式以不改变被适配对象的接口定义为目的对其进行改造 C. 用饿汉方式实现的单例模式是 ...

  4. 【小红书】2020校招编程题

    目录 1.薯券使用问题 2.笔记草稿 3.笔记精选 4.倒卖战利品 5.字符串倒序 6.迷宫游戏 1.薯券使用问题 某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多 ...

  5. 小红书校招java_【小红书】2020校招编程题

    目录 1.薯券使用问题 2.笔记草稿 3.笔记精选 4.倒卖战利品 5.字符串倒序 6.迷宫游戏 1.薯券使用问题 某小红薯在小红书的活动中抽奖中了一定价值的薯券,这些薯券可以用来购买一批商品,求有多 ...

  6. 小红书2020校招算法题(三)

    目录 一.笔记草稿 二.笔记精选 一.笔记草稿 题目描述: 薯队长写了一篇笔记草稿,请你帮忙输出最后内容. 输入字符包括,"(" , ")" 和 "& ...

  7. 爱奇艺2020校招编程题汇总第一题(切方块问题)

    链接:https://www.nowcoder.com/questionTerminal/29f9a255e8964bb0a097b5c125543dd8?answerType=1&f=dis ...

  8. 哔哩哔哩2020校招原题 - 复数乘法

    目录 1.题目解读 2.解题思路 3.代码示例 1.题目解读 题目描述: 输入两个表示复数的字符串,输出它们相乘的结果的字符串. 复数字符串用 a + bi 表示(a,b 为整数,i 为虚数单位,i^ ...

  9. 小米2020校招软件开发工程师笔试题二

    https://blog.csdn.net/Yuudachi/article/details/104090132

最新文章

  1. POJ 1414 Life Line(搜索)
  2. Reddit票选 | 2019年绝对不能错过的机器学习论文
  3. 浏览器刷新再次升级!不同浏览器窗口
  4. 借助acs来实现telnet、ssh的远程认证
  5. 关于CSS属性display:none和visible:hidden的区别
  6. Git 技术篇 - Github在项目分支里下载某个文件方法,Github项目里的单个js文件下载实例演示
  7. JAVA js的escape函数、解析用js encodeURI编码的字符串、utf8转gb2312的函数
  8. nodeJs 是什么?你需要先想清楚这个问题,才能学习nodejs (介绍)
  9. Oracle存储过程快速入门
  10. AngularJS中ng-options简单用法及预选项失败的原因
  11. 编译型语言VS解释型语言、动态语言、静态语言
  12. 利用ModelBinder防止XSS一次尝试
  13. mysql 最大建议行数2000w,靠谱吗?
  14. C# SolidWorks二次开发-工程图-更换工程图图纸格式/模板
  15. mac 打开虚拟机之后,原MAC没有声音解决方法
  16. dell计算机一直重启,dell开机无限循环重启如何处理
  17. 华为如何开启找回服务器,华为服务器BIOS恢复出厂设置
  18. GPS纠偏算法,适用于google,高德体系的地图
  19. ERDAS 2015 64位破解安装教程
  20. 【C++】limits头文件 numeric_limits

热门文章

  1. .cdata matlab,Matlab:AlphaData的警告尺寸必须与CData匹配
  2. js实现农历、新历同时显示
  3. 个人对高等数学极限的理解1
  4. ZhangSuen图像细化算法
  5. 公司绩效考评系统 -- 数据库设计, 接口方法
  6. Qt中Qlabel控件实现文本多种颜色样式显示,支持换行。
  7. keil如何向工程中添加或移除文件?
  8. 后端应用健康检查的几种解决方案
  9. tck/tk脚本介绍
  10. Native APP学习