2

问题。这是一个简单的问题,但我不知道这段代码有什么问题?

from collections import Counter
def com(N,A):
    num_array=A.split()
    c=Counter(num_array)
    C=max(c.values())
    l1=[]
    for k in c:
        if c[k]==C:
            l1.append(k)

    V1=min(l1)
    V=int(V1)
    print V,C

t=input()
for i in range(t):
    N=input()
    A=raw_input()
    com(N,A)

如果可能的话,任何更简单的解决方案都会很棒

4

2 回答 2

1

您需要l1在取最小值之前将值转换为整数。否则,您将占用最少的字符串。

于 2013-03-02T01:15:10.387 回答
1

这将使您开始:

from collections import Counter

li='''2
5
1 2 3 2 5
6
1 2 2 1 1 2'''.splitlines()
c=Counter()
for e in [s.split(' ') for s in li]:
    c.update(e)

print c.most_common(2)

印刷:

[('2', 6), ('1', 4)]
于 2013-03-02T01:19:15.383 回答