-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmain.py
105 lines (100 loc) · 2.96 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# Author : Qi Zhang
# Date : 2018-12-11
def best(num):
if num[1] == num[0] + 1 and num[2] == num[1] + 1 and num[3] == num[2] + 1 and num[4] == num[3] + 1:
return (1, num[4])
maxcount = 1
count = 1
target = -1
for i in range(1, len(num)):
if num[i] == num[i-1]:
count += 1
if count >= maxcount:
maxcount = count
target = num[i]
else:
count = 1
if count >= maxcount:
maxcount = count
target = num[i]
if maxcount == 4:
return (2, target)
elif maxcount == 3:
return (3, target)
elif maxcount == 2:
return (4, target)
else:
return (5, target)
def solution(line):
x, y = line.split(",")
hua = {"J": 11, "Q": 12, "K": 13, "A": 14}
xnum = [hua[i] if hua.has_key(i) else int(i) for i in x.split()]
ynum = [hua[i] if hua.has_key(i) else int(i) for i in y.split()]
xnum = sorted(xnum)
ynum = sorted(ynum)
xx = best(xnum)
yy = best(ynum)
if xx[0] < yy[0]:
return "win"
elif xx[0] > yy[0]:
return "lose"
elif xx[0] == 1:
if xx[1] > yy[1]:
return "win"
elif xx[1] < yy[1]:
return "lose"
else:
return "draw"
elif xx[0] == 2 or xx[1] == 3:
if xx[1] > yy[1]:
return "win"
else:
return "lose"
elif xx[0] == 4:
if xx[1] > yy[1]:
return "win"
elif xx[1] < yy[1]:
return "lose"
else:
xrm = [i for i in xnum if i != xx[1]]
yrm = [i for i in ynum if i != yy[1]]
if xrm[0] == xrm[1] or xrm[1] == xrm[2]:
xcount = 2
else:
xcount = 1
if yrm[0] == yrm[1] or yrm[1] == yrm[2]:
ycount = 2
else:
ycount = 1
if xcount > ycount:
return "win"
elif xcount < ycount:
return "lose"
elif xcount == 1:
for i in range(2, -1, -1):
if xrm[i] > yrm[i]:
return "win"
if xrm[i] < yrm[i]:
return "lose"
return "draw"
else:
if xrm[1] > yrm[1]:
return "win"
elif xrm[1] < yrm[1]:
return "lose"
else:
xt = [i for i in xrm if i != xrm[1]]
yt = [i for i in yrm if i != yrm[1]]
if xt[0] > yt[0]:
return "win"
elif xt[0] < yt[0]:
return "lose"
else:
return "draw"
else:
for i in range(4, -1, -1):
if xnum[i] > ynum[i]:
return "win"
if xnum[i] < ynum[i]:
return "lose"
return "draw"