快手8.25 第一第二题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_18310041/article/details/100066068

第一题

要求图片最早的位置不变,图片的相对顺序不变

n 每N个只能有一个是图片

m  数组长度

line = ['V_0','V_1','V_2','P_3','P_4','P_5','V_6','P_7','V_8','V_9']

第一题只AC 80% 求解??

ans = []
n = int(input())
m = int(input())
line = []
for i in range(m):
    line.append(str(input()))

def fun(m, n, line):
    if n <= 1:
        return line
    p = []
    v = []
    for i in range(m):
        if line[i][0] == 'V':
            v.append(line[i])
        else:
            p.append(line[i])

    i = 0
    while i <= len(line) and v:
        if line[i][0] == 'V':
            ans.append(v.pop(0))

        elif line[i][0] == 'P':
            while p and v:
                ans.append(p.pop(0))
                k = n - 1
                while k and v:
                    ans.append(v.pop(0))
                    k -= 1
                if v == [] and k == 0 and p:
                    ans.append(p.pop(0))

        i += 1
    return ans
    
res = fun(m,n,line)
print(str(len(res)))
for i in range(len(res)):
    print(str(res[i]))

第二题

最长连续自序列

line = 'abcabcbb'

def substring(s):
    l = 0 
    r = -1
    res = 0
    dict1 = {}
    while r < len(s) - 1:
        if dict1.get(s[r+1], 0) == 0:
            r += 1
            dict1[s[r]] = 1
        else:
            dict1[s[l]] -= 1
            l += 1
        res = max(res, r-l+1)
    return res
print(substring(line))

猜你喜欢

转载自blog.csdn.net/qq_18310041/article/details/100066068