bilibili, 算法第二次笔试

第一题:
if __name__ == "__main__":

    d = list(map(int, input().split(',')))
    for i in range(len(d)):
        for j in range(i):
            if int(str(d[i]) + str(d[j])) > int(str(d[j]) + str(d[i])):
                d[i], d[j] = d[j], d[i]

    d = [str(i) for i in d]

    if len(set(d)) == 1 and set(d).pop() == '0':
        print("0")
    else:
        print("".join(d))

class int_com:
    def __init__(self, val):
        self.val = val

    def __lt__(self, other):
        str1 = str(self.val) + str(other.val)
        str2 = str(other.val) + str(self.val)
        num1 = int(str1)
        num2 = int(str2)
        return num1 < num2

    def __eq__(self, other):
        str1 = str(self.val) + str(other.val)
        str2 = str(other.val) + str(self.val)
        num1 = int(str1)
        num2 = int(str2)
        return num1 == num2

if __name__ == "__main__":
    num = [int(x) for x in input().strip().split(',')]
    nums = []
    for i in range(len(num)):
        t = int_com(num[i])
        nums.append(t)
    nums.sort(reverse=True)
    res = [str(x.val) for x in nums]
    print(res)
    print(''.join(res))

第三题:
if __name__ == "__main__":
    n, s = [int(x) for x in input().strip().split(' ')]
    p = [int(x) for x in input().strip().split(' ')]
    if sum(p) <= s:
        print(-1)
    else:
        res = float('inf')
        cnt = p[0]
        l = 0
        r = 1
        while l < n and r <= n:
            while r < n and cnt < s:
                cnt += p[r]
                r += 1
            if cnt >= s:
                res = min(res, r-l)
            cnt -= p[l]
            l += 1
        print(res)


#哔哩哔哩##笔试题目#
全部评论

相关推荐

这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

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