深圳计算科学研究院
深圳计算科学研究院以建设世界一流的计算基础科学研究机构为目标,重点研究以大数据为代表的计算科学基础理论,开发核心系统软件,打造中国原创的基础软件品牌,培育高端人才,提供源头技术,引领产业创新。
流程
笔试-两轮面试-offer
笔试
题目量:选择+编程+简答(选做)
时间:2h
单选:涵盖计网,计组,数据库,Java,数据结构
编程
第一道:表达式括号()匹配 ac 100%好像
# 括号匹配
# 假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,
# 以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,
# 若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。
class Stack:
#栈思想
def __init__(self):
self.lista = []
def isEmpty(self):
return len(self.lista) == 0
def push(self, item):
self.lista.append(item)
def pop(self):
if self.isEmpty():
return False
else:
return self.lista.pop()
def isMatch(a):
sta = Stack()
left = '('
right = ')'
for i in a:
if i in left:
sta.push(i)
elif i in right:
if sta.isEmpty():
return False
if right.index(i) != left.index(sta.pop()):
return False
# 增加一层判断即可
if sta.isEmpty():
print('YES')
else:
print('NO')
return sta.isEmpty()
a =input()
isMatch(a)
第二道:赛车问题
大概是a和b赛车,b知道a的出场顺序。求最大积分是多少?
赢一场+10。输一场-10,平局0。
输入的话 比赛场次,然后a和b的赛车速度。
ac 40% QAQ
# 赛车 ac 40%
def point(a, b):
# 比较函数
if a > b :
return -10
elif a < b :
return 10
else:
return 0
def maxPoint(a, b):
# 得分函数
a = sorted(a, reverse=True)
b = sorted(b, reverse=True)
p = 0
l = len(a)
for i in range(0, l):
p += point(a[i], b[i])
a = [1, 3, 4]
b = [2, 6 ,3]
print(maxPoint(a, b)) # 20
笔试过了!!!