华为机试在线训练–牛客网(python)

华为机试在线训练–牛客网(python)

第一部分(1~10)

第一题:求字符串最后一个单词的长度

Alt textAlt text

#coding=utf-8
str = raw_input("")
space_sky = ' '
if space_sky in str:
    str_sp = str.split(' ')
    print len(str_sp[-1])
else:
    print len(str)

第二题:计算字符个数

Alt textAlt text

#coding=utf-8
str1 = raw_input('')
str2 = raw_input('')
str1_new = str1.upper()#大写upper()或小写lower()
str2_new = str2.upper()
print str1_new.count(str2_new)

第三题:明明的随机数

Alt textAlt text

import sys
while True:
    try:
        num=input()
        num_list=[]
        for i in range(num):
            input_num=sys.stdin.readline()
#            input_num=raw_input()
            num_list.append(int(input_num))
        num_list=sorted(set(num_list))
        for i in num_list:
            print i
    except:
        break

第四题:字符串分割

Alt textAlt text

#coding=utf-8
def str_split_8(str):
    n = len(str)/8
    for i in range(n):
        print str[i*8:(i+1)*8]
    if len(str)%8>0:
        #字符串左对齐,长度为8,不够的用0补齐;如果字符串长度大于8,返回原始字符串
        print str[-(len(str)%8):].ljust(8,'0')
str1 = raw_input()
str2 = raw_input()
str_split_8(str1)
str_split_8(str2)

第五题:进制转换

Alt textAlt text

#coding=utf-8
while True:
    try:
        print int(raw_input(),16)
    except:
        break

第六题:质数因子

Alt textAlt text

#coding=utf-8
while True:
    try:
        num=int(input())
        i=2
        while num!=1:
            if num%i==0:
#,不能少使得每个质因数在同一行表示并且用空格隔开
                print i,
                num=num/i
            else:
                i+=1
    except:
        break

第七题:取近似值

Alt textAlt text

#coding=utf-8
import string
while True:
    try:
        num = string.atof(raw_input())
        #四舍五入round();向下取整int();向上取整ceil();取整后还是浮点型
        print int(round(num))
    except:
        break

第八题:合并表记录

Alt textAlt text

#coding=utf-8
while True:
    try:
        num = input()
        dic = {}
        for i in range(num):
            key, value = map(int,raw_input().split(' '))
            dic[key] = dic.setdefault(key, 0) + value
        for key in sorted(dic.keys()):
            print key, str(dic[key])
    except:
        break

第九题:提取不重复的整数

Alt textAlt text

#coding=utf-8
while True:
    try:
        num = list(reversed(raw_input()))#reversed()倒置列表
        arr = []
        for i in num:
            if i not in arr:
                arr.append(i)
        print ''.join(arr)
    except:
        break

第十题:字符个数统计

Alt textAlt text

#coding=utf-8
while True:
    try:
        def count_str(str):
            s= list(set(str))
            arr = []
            for i in s:
                if ord(i) > 0 and ord(i) < 127:
                    arr.append(s)
            print len(arr)
        num = raw_input()
        count_str(num)
    except:
        break

未完待续

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值