importsysimportcollectionsdefsolve(s):it=iter(s)cards=[]for_inxrange(5):suit="SDHC".index(it.next())number="A23456789TJQK".index(it.next())+1cards.append((suit,number))counts=collections.defaultdict(int)forsuit,numberincards:counts[number]+=1counts=sorted(counts.itervalues())flush=all(cards[0][0]==suitforsuit,numberincards[1:])numbers=sorted(numberforsuit,numberincards)royal_straight=(numbers==[1,10,11,12,13])straight=all(numbers[i]+1==numbers[i+1]foriinxrange(4))orroyal_straightifroyal_straightandflush:return"Royal flush"elifstraightandflush:return"Straight flush"elifcounts==[1,4]:return"Four of a kind"elifcounts==[2,3]:return"Full House"elifflush:return"Flush"elifstraight:return"Straight"elifcounts==[1,1,3]:return"Three of a kind"elifcounts==[1,2,2]:return"Two pair"elifcounts==[1,1,1,2]:return"One pair"else:assertcounts==[1,1,1,1,1]return"No pair"defmain():iflen(sys.argv)>=2:forsinsys.argv[1:]:printsolve(s)else:printsolve("SQSJSASKST")# Royal flushprintsolve("D9D7D6D5D8")# Straight flushprintsolve("C2D2S2H3H2")# Four of a kindprintsolve("C2D3S2H3H2")# Full houseprintsolve("S9S4S8STSJ")# Flushprintsolve("C4H7D5S6H3")# Straightprintsolve("S6H6C5DQC6")# Three of a kindprintsolve("S6HQC5DQC6")# Two pairprintsolve("S6H4C5DQC6")# One pairprintsolve("SJSQSKSAC2")# No pairif__name__=='__main__':main()
ocean
#4987()
[
Python
]
Rating1/1=1.00
こんな感じ?
Rating1/1=1.00-0+
[ reply ]