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)


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

相关推荐

勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
AFBUFYGRFHJLP:直接去美帝试试看全奖phd吧
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务