终于写出来了!
2025-10-04 10:29:00
发布于:广东
4阅读
0回复
0点赞
自从在2024暑假班有人说“求来个Python大佬把这题解了”以来,已经过去一年有余。
现在:我真的写出来了!
n = int(input())
cho = []
lps = []
def sore():
for F in range(7):
flag = True
for G in range(6 - F):
if lps[G][0] > lps[G + 1][0]:
flag = False
lps[G], lps[G + 1] = lps[G + 1], lps[G]
if flag:
break
def poe():
same2 = same3 = same4 = col = shun= lv = 0
for H in range(4):
if cho[H][0] == cho[H + 1][0]:
same2 += 1
for J in range(3):
if cho[J][0] == cho[J + 1][0] and cho[J + 1][0] == cho[J + 2][0]:
same3 += 1
for K in range(2):
if cho[K][0] == cho[K + 1][0] and cho[K + 1][0] == cho[K + 2][0] and cho[K + 2][0] == cho[K + 3][0]:
same4 += 1
if cho[0][1] == cho[1][1] and cho[1][1] == cho[2][1] and cho[2][1] == cho[3][1] and cho[3][1] == cho[4][1]:
col = 1
if (cho[0][0] == "1" and cho[4][0] == "=" or ord(cho[0][0]) + 1 == ord(cho[1][0])) and ord(cho[1][0]) + 1 == ord(
cho[2][0]) and ord(cho[2][0]) + 1 == ord(cho[3][0]) and ord(cho[3][0]) + 1 == ord(cho[4][0]):
shun = 1
if shun == 1 and col == 1 and cho[0][0] == "1" and cho[4][0] == "=":
lv = 10
elif shun == 1 and col == 1:
lv = max(lv, 9)
elif same4 == 1:
lv = max(lv, 8)
elif same3 == 1 and same2 == 3:
lv = max(lv, 7)
elif col == 1:
lv = max(lv, 6)
elif shun == 1:
lv = max(lv, 5)
elif same3 == 1:
lv = max(lv, 4)
elif same2 == 2:
lv = max(lv, 3)
elif same2 == 1:
lv = max(lv, 2)
else:
lv = max(lv, 1)
return lv
lvn=0
while n:
n -= 1
lvn = 1
li=0
lc = input() # 输入
lc += input()
for i in range(len(lc)):
if "0" <= lc[i] <= "9":
lps.append(lc[i]+lc[i+1])
i+=1
li+=1
if lc[i][0] == "A":
lps.append("1" + lc[i+1])
i+=1
li+=1
elif lc[i][0] == "T":
lps.append(":" + lc[i+1]) # 这几个是ASCII码表数字后面的符号,很神奇吧,专门查过(
i+=1
li+=1
elif lc[i][0] == "J":
lps.append(";" + lc[i+1])
i+=1
li+=1
elif lc[i][0] == "Q":
lps.append("<" + lc[i+1])
i+=1
li+=1
elif lc[i][0] == "K":
lps.append("=" + lc[i+1])
i+=1
li+=1
sore()
for i in range(7):
for j in range(7):
if i == j:
continue
zj = 0
for k in range(7):
if k == i or k == j:
continue
cho.append(lps[k])
lvn=max(lvn,poe())
cho.clear()
if lvn == 10:
print("ROYAL FLUSH")
elif lvn == 9:
print("STRAIGHT FLUSH")
elif lvn == 8:
print("FOUR OF A KIND")
elif lvn == 7:
print("FULL HOUSE")
elif lvn == 6:
print("FLUSH")
elif lvn == 5:
print("STRAIGHT")
elif lvn == 4:
print("THREE OF KIND")
elif lvn == 3:
print("TWO PAIR")
elif lvn == 2:
print("ONE PAIR")
else:
print("HIGH CARD")
lps.clear()
最困难的点有两个:
1.输入时数组中经常输入个,一开始测试时没注意到,出了12个RE
2.一开始定义数组,我写的是,所以和总是同步,后面分开就没问题了。这方面还是不能懒(
下次集训就给老师一个惊喜吧(
这里空空如也


有帮助,赞一个