1 AC
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%,大佬看看哪边可以简化的
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)