华为2019.4.10号软件笔试题

1.分割字符串
"""-*- coding: utf-8 -*-"""
import sys
for line in sys.stdin:
    #获取字符串的个数和以及字符组成的列表
    str_list=list(line.strip('\n').split(' '))
    N=int(str_list[0])
    str_list.pop(0)
    #建立一个存储结果的列表
    result_list=[]
    for i in range(N):
        #如果相应的字符串大于8
        temp_str=str_list[i]
        while len(temp_str)>8:
            result_list.append(temp_str[:8])
            temp=temp_str[8:]
            del temp_str
            temp_str=temp
        if len(temp_str)==8:
            result_list.append(temp_str)
        elif len(temp_str)<8 and len(temp_str)>0:
            temp_str+='0'*(8-len(temp_str))
            result_list.append(temp_str)
    result_list.sort(reverse=False)
    print(' '.join(result_list))
2.扩展字符串
#利用栈的思想实现
"""-*- coding: utf-8 -*-"""
import sys

for line in sys.stdin:

    str_list=list(line.strip('\n'))
    stack_list=[]
    while len(str_list)!=0:
        temp_str=str_list.pop(0)
        if temp_str not in ['}',']',')']:
            stack_list.append(temp_str)
        else:
            tp_str=[]
            if temp_str==')':
                while stack_list[-1]!='(':
                    tp_str.append(stack_list.pop(-1))
                stack_list.pop(-1)
                int_list=[]
                while stack_list[-1]>='0' and stack_list[-1]<='9':
                    int_list.append(stack_list.pop(-1))
                n=int(''.join(int_list[::-1]))
                del int_list
                # n=int(stack_list.pop(-1))
                a=list((''.join(tp_str[::-1]))*n)
                for i in a:
                    stack_list.append(i)
            del tp_str
            tp_str=[]
            if temp_str=='}':
                while stack_list[-1] != '{':
                    tp_str.append(stack_list.pop(-1))
                stack_list.pop(-1)
                int_list=[]
                while stack_list[-1]>='0' and stack_list[-1]<='9':
                    int_list.append(stack_list.pop(-1))
                n = int(''.join(int_list[::-1]))
                del int_list
                # n = int(stack_list.pop(-1))
                a = list((''.join(tp_str[::-1])) * n)
                for i in a:
                    stack_list.append(i)
            del tp_str
            tp_str=[]
            if temp_str==']':
                while stack_list[-1] != '[':
                    tp_str.append(stack_list.pop(-1))
                stack_list.pop(-1)
                int_list=[]
                while stack_list[-1]>='0' and stack_list[-1]<='9':
                    int_list.append(stack_list.pop(-1))
                n=int(''.join(int_list[::-1]))            
                del int_list
                # n = int(stack_list.pop(-1))
                a = list((''.join(tp_str[::-1])) * n)
                for i in a:
                    stack_list.append(i)
            del tp_str
    print(''.join(stack_list[::-1]))

3.没看。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值