腾讯音乐926笔试

求大佬们看下这样为啥0%样例通过,没RE没TLE,自己测的样例都是对的,不知道什么case没考虑到。
题目描述:求数组中所有“元素乘积尾部0大于x的子数组”个数,滑动窗口题
def getSubarrayNum(a, x) -> int:
    # write code here
    def is_valid(sum_num, x):
        sum_zero = 0
        while sum_num >= 10:
            if sum_num % 10 == 0:
                sum_zero += 1
            sum_num = sum_num / 10
        return True if sum_zero >= x else False 
    l = r = 0
    valid = 0
    sum_num = 1
    while r < len(a):
        sum_num = sum_num * a[r]
        while is_valid(sum_num,x):
            valid += len(a) - r
            print(valid, a[l:r+1])
            if l < r:
                sum_num = sum_num / a[l]
                l += 1
            else:
                break
        r += 1
    valid = valid % (10 ** 9 + 7)
    
    return valid

#腾讯音乐##腾讯音乐娱乐笔试##腾讯音乐23秋招笔试好难啊,麻了#
全部评论
我也是提交了怎么搞都是0%
3 回复 分享
发布于 2022-09-26 20:43 浙江
这一题,我直接暴力枚举所有子区间,然后计算它们的0的个数;提交不是超时,是0!!!!
2 回复 分享
发布于 2022-09-26 20:38 广东
我猜是因为那个x是不超过10的9次方,所以判is_valid是没用的,估计后台判例x都是很大的
2 回复 分享
发布于 2022-09-26 20:39 上海
两个数相乘太大了 应该时直接报错了
2 回复 分享
发布于 2022-09-26 20:42 上海
统计2、5因子数量
1 回复 分享
发布于 2022-09-26 20:44 四川
这道题应该不能暴力枚举
点赞 回复 分享
发布于 2022-09-26 20:43 四川
我也是,java提交咋算都是0,自己测都是对的
点赞 回复 分享
发布于 2022-09-26 20:44 河南
蹲一手第三题咋做
点赞 回复 分享
发布于 2022-09-26 20:46 北京
开始用这个思路,同样自己用例全过。就是0%。换个思路,统计2 5的数量居然就ac了。。
点赞 回复 分享
发布于 2022-09-26 20:53 湖南
2 5因子
点赞 回复 分享
发布于 2022-09-26 22:57 福建
+1,无论怎么搞就是0,麻了
点赞 回复 分享
发布于 2022-09-27 16:49 上海

相关推荐

评论
2
收藏
分享
牛客网
牛客企业服务