华为笔试题1,62.5%,为啥有3个没过呢?

import sys
while 1:
    # 读取第一行的n
    n = input()
    flag=0
    li = n.split(',')
    i=0
    if len(li)>100:
        print("error.0001")
        break
    while i<len(n):
        if 'a'<=n[i]<='z'&nbs***bsp;'A'<=n[i]<='Z'&nbs***bsp;n[i]==',':
            i+=1
        else:
            flag=-1
            break
    for i in range(len(li)):
        if flag==-1: break
        tmp=li[i]
        if len(tmp)<3:
            flag=-1
            break
        if not 'A'<=tmp[0]<='Z':
            flag=-1
            break
        for j in range(1,len(tmp)):
            if not 'a'<=tmp[j]<='z':
                flag=-1
                break

    if flag==-1:
        print("error.0001")
        break

    dic={}
    n=len(li)
    for i in range(n):
        if li[i] not in dic:
            dic[li[i]]=1
        else:
            dic[li[i]]+=1
    maxd = li[0]
    res =[maxd]
    # print(dic)
    for i, v in dic.items():
        if dic[i]>dic[maxd]:
            maxd=dic[i]
        if dic[i]==dic[maxd]:
            res.append(i)
    res.sort()
    print(res[0])
    break

#华为笔试##华为##笔试题目#
全部评论
老哥你好,这一块逻辑有没有问题和你探讨下。     maxd = li[0]     res =[maxd]     # print(dic)     for i, v in dic.items():         if dic[i]>dic[maxd]:             maxd=dic[i]         if dic[i]==dic[maxd]:             res.append(i) 这里是把li[0]先放到res里(res存出现次数最多的人名),那如果出现dic[i]>dic[maxd],是不是应该让res清空?         if dic[i]>dic[maxd]:             maxd=dic[i]             res = [maxd]         ... 这样?
1 回复 分享
发布于 2020-04-16 14:35
要判断名字是否合法
1 回复 分享
发布于 2020-04-16 09:33
这次笔试没过的话,是不是秋招也凉凉了
点赞 回复 分享
发布于 2020-04-17 15:08
我C++写的第一遍62.5%,后来非法输入有点问题修改一下就过了
点赞 回复 分享
发布于 2020-04-17 11:10
我的做法是, 首先将异常输入(姓名首字母非大写,非首字母不在'a~z'范围、输入中没有出现','、空输入等全部打印报错),然后使用字典记录名字-次数的键值对。使用一个容器记录下所有最大值的名字,将短名字替换容器中所有包含短名的长名字(Tommy->Tom),然后再进行字母排序,这样就AC了。
点赞 回复 分享
发布于 2020-04-16 19:04
我也是62.5%!!!!至今不知道啥原因
点赞 回复 分享
发布于 2020-04-16 18:18
同,考虑了空、大小写还有非法字符还是62.5 太奇怪了
点赞 回复 分享
发布于 2020-04-16 16:58
我也是,75%
点赞 回复 分享
发布于 2020-04-16 11:36
要判断名字首字母大写其他小写
点赞 回复 分享
发布于 2020-04-16 10:31

相关推荐

吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
豆泥🍀:同26届,加油,我也还没找到查看图片
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客企业服务