华为2020届实习生校招机考题(2019-3-20版)

 

第一题

先把输入一个个都存入一个string,而后遍历string,判断是否为符号,若是是加号就加上后面的数,减号则减去后面的数。python

在实现的过程当中有许多细节须要注意。例如先把符号存起来,判断符号的位置、是否为最后一个符号了等。app

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 20 18:17:30 2019
huawei1
@author: youxinlin
"""
aStr = ''

while True:
    tmp = input()
    if tmp != '=':
        aStr += tmp
    else:
        break
    
index = 0 
jiaList=[]
jianList=[]
flagList = []


for i in aStr:
    if i =='+':
        jiaList.append(index)
        flagList.append(index)
    if i =='-':
        jianList.append(index)  
        flagList.append(index)

    index += 1

res = int(aStr[0:flagList[0]])#初始化结果

for i in range(len(flagList)):

    if flagList[i] in jiaList:
        if i+1 < len(flagList):
            res += int(aStr[flagList[i]+1:flagList[i+1]])
        else:
            res += int(aStr[flagList[i]+1:])

    elif flagList[i] in jianList:
        if i+1 < len(flagList):
            res -= int(aStr[flagList[i]+1:flagList[i+1]])
        else:
            res -= int(aStr[flagList[i]+1:])

print(res)

第二题 

 

第三题