华为编程题第一道Python

很遗憾自己调试了半天都出不来,对牛客的意见很大,不能够进行调试,只要不和答案相关也不能输出,这样哪一步错了也不清楚(小伙伴们,不知道你们的是不是也是这样?)
关于第一道编程题,做题的时候,检查了好几遍,估计还是逻辑有些问题,不过线下自己调试了一下,出来结果了,可惜交卷了,悲痛中😥
题目大意是这样:输入一个十进制的整数,然后把它变成二进制后,找出含有‘101’这种二进制的组合有多少个,如果有10101这种,就算两个,很好理解。
本人的代码是这样的:
#输入
a=input()
b = int(a)
#转化成二进制
c =bin(b)
num = 0#这个是统计有几个101的个数的
str_m =[]#这个是存二进制每一个位的整数的,后来发现这步可以省,没改
str_c =list(str(c).replace('0b',''))#字符串分割成数组
location = 0#定位第一个101所在的位置
num_location = 0#输出定位所在的整型位置
n = len(str_c)-1#这是为了计算二进制字符数组的长度的
#计算有多少个101
for i in range(0,len(str_c)-2):
    if (str_c[i]=='1')&(str_c[i+1]=='0')&(str_c[i+2]=='1'):
        num = num+1
#计算101出现的第一个位置,这里比较绕,所在的位置为1所在的起点
for i in range(0,len(str_c)-2):
    if(str_c[n-i]=='1')&(str_c[n-i-1]=='0')&(str_c[n-i-2]=='1'):
        location = i
        break
#把数组数据头尾转换,然后存到一个新数组
for i in range(0,n+1):
    str_m.append(int(str_c[n-i]))
#将101所在的位置二进制转换成十进制,比如11011,101第一个出现的位置就是3
for i in range(0,location+1):
    if str_m[i]==1:
        num_location = 2**i +num_location
#如果存在101就输出,不存在就输出0,-1,(输出格式是m,n,m-101个数,n-起始位置)
if num==0:
    print(0,-1)
else:
    print(num,num_location,location,str_c)

进行了调试:
77
1 1 
希望接下来自己为自己的努力多攒点人气,加油加油!

#华为##笔试题目##笔经#
全部评论
不是都用本地ide吗
点赞 回复 分享
发布于 2020-01-08 14:57
牛客上python编程的题怎么找不到呀,大家有链接没
点赞 回复 分享
发布于 2020-01-05 15:12
大哥可以参考下我这渣渣代码哈
点赞 回复 分享
发布于 2019-09-01 00:49
点赞 回复 分享
发布于 2019-09-01 00:48
华为有笔试了?为啥我没收到
点赞 回复 分享
发布于 2019-09-01 00:23
关键是从右往左的吧。。
点赞 回复 分享
发布于 2019-09-01 00:20
我也今晚做了这套卷子 太难了 第一题只AC了64 剩下的没做
点赞 回复 分享
发布于 2019-08-31 22:42
华为笔试都是可以在本地调试的啊。。
点赞 回复 分享
发布于 2019-08-31 22:14
你试下负数,我的正数没问题,负数本地IDE上没问题,但不知道牛客为什么过不了
点赞 回复 分享
发布于 2019-08-31 21:57
痛苦+1 最后一分钟发现是从后往前 来不及了
点赞 回复 分享
发布于 2019-08-31 21:54
今年都不让线下调试了吗。。。
点赞 回复 分享
发布于 2019-08-31 21:51
今天有笔试啊
点赞 回复 分享
发布于 2019-08-31 21:48
你三道都A了多少
点赞 回复 分享
发布于 2019-08-31 21:45

相关推荐

24分钟1.自我介绍2.黑盒测试用例设计方法3.运用刚才的测试方法对手机端淘宝购物车结算页面进行测试4.测试流程5.需求文档没有标明边界值,怎么确定边界值,确定边界值后怎么测6.你们公司自动化测试是测业务主流程还是新需求反问:不足之处答:问答问题前思考3s再答,针对提问再答
一笑而过2222:边:边界值分析法(处理输入边界) 类:等价类划分法(划分有效 / 无效输入) 定:判定表法(多条件组合的逻辑判定) 因:因果图法(分析输入输出的因果关系) 迁:状态迁移法(覆盖系统状态转换路径) 场:场景法(模拟端到端业务流程) 正:正交试验法(多因素组合的测试优化) 错:错误推测法(基于经验推测潜在漏洞) 记忆逻辑链(按测试场景优先级排序) 先处理明确输入:边界值 + 等价类(边类) 再处理条件组合:判定表 + 因果图(定因) 接着处理状态与流程:状态迁移 + 场景法(迁场) 最后优化多因素与补漏:正交试验 + 错误推测(正错)
查看6道真题和解析
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务