记一次深圳计算科学研究院的COD笔试

深圳计算科学研究院
深圳计算科学研究院以建设世界一流的计算基础科学研究机构为目标,重点研究以大数据为代表的计算科学基础理论,开发核心系统软件,打造中国原创的基础软件品牌,培育高端人才,提供源头技术,引领产业创新。
流程
笔试-两轮面试-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

笔试过了!!!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值