题解 | #扑克牌大小#
扑克牌大小
http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb
from collections import Counter
dmap = {
"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,"10":10,"J":11,"Q":12,"K":13,"A":14,"2":15,"joker":16,"JOKER":17
}
def ifpairj(ss):
if 16 in ss and 17 in ss:
return True
return False
def ifp(ss):
res = [[],[],[],[]]
s = dict(Counter(ss))
for k,v in s.items():
res[v-1].append(k)
shunl = []
shun = 0
for i in range(len(ss)-1):
if (ss[i]-ss[i+1] == -1):
shun+=1
else:
if shun >= 5:
shunl.append(ss[i-4])
shun = 0
res = res[:2]+[shunl]+res[2:]
return res
def run(seq):
seq1, seq2 = seq.split("-")
s1 = sorted([dmap[_] for _ in seq1.split()])
s2 = sorted([dmap[_] for _ in seq2.split()])
if ifpairj(s1):
return seq1
if ifpairj(s2):
return seq2
s1 = ifp(s1)
s2 = ifp(s2)
res = "ERROR"
for i in range(4,-1,-1):
if len(s1[i]) > 0 and len(s2[i]) > 0:
if max(s1[i]) == max(s2[i]):
continue
elif max(s1[i]) > max(s2[i]):
res = seq1
break
else:
res = seq2
break
elif i==4:
if len(s1[i]) > 0:
res = seq1
break
elif len(s2[i]) > 0:
res = seq2
break
else:
continue
return res
a =input().strip()
print(run(a))