腾讯技术研究类和数据分析第二次笔试(2019.9.1)第一道编程题AC

1 AC

腾讯技术研究类和数据分析第二次笔试(2019.9.1)第一道编程题AC_第1张图片

T = int(input())
while T:
    T -= 1
    n = int(input())
    A = list(map(int, input().split()))
    m = [0] * n
    for i in A:
        m[i-1] += 1

    if max(m) > len(A) >> 1:
        print('NO')
    else:
        print('YES')

只要当出现次数最多的小于等于长度的一半时,就可以了。

4 超时了,60%,大佬看看哪边可以简化的

腾讯技术研究类和数据分析第二次笔试(2019.9.1)第一道编程题AC_第2张图片

腾讯技术研究类和数据分析第二次笔试(2019.9.1)第一道编程题AC_第3张图片

n = int(input())
T = input()
m = int(input())
count = 0
for _ in range(m):
    s = input()
    if s not in T:
        continue
    length = [int(i/len(s)) for i in range(len(T) + 1) if i % len(s) == 0][:-1]
    for i in length:
        ss = (i + 1) * s
        if ss not in T:
            break
        if i == length[-1] and len(ss) <= len(T):
            if len(ss) < len(T) and T[(len(ss) - len(T)):] != s[:(len(T) - len(ss))]:
                break
            count += 1

print(count)

 

你可能感兴趣的:(算法工程师笔试机构,Code)