存一个去哪儿后端笔试9.7 第3题德扑

过了88%
# 翻牌
# @param inHand string字符串 一组以单空格间隔的手牌(例如:SA HK H9 D8 C5 S5 H4)
# @return string字符串
#
from collections import defaultdict
class Solution:
    def is_continuous(self,nums):
        count = 1
        record = [nums[0]]
        for i in range(1,len(nums)):
            if(count>=4 and record[0]==13 and nums[-1]==1):    # 最高顺子
                return "B"
            if(count>=5):    # 顺子
                return "b"
            if(nums[i-1]==nums[i]+1):
                count += 1
                record.append(nums[i])
            elif(nums[i-1]==nums[i]):
                pass
            else:
                count = 1
                record = [nums[i]]
        if(count>=4 and record[0]==13 and nums[-1]==1):    # 最高顺子
            return "B"
        if(count>=5):    # 顺子
            return "b"
        return False
    
    def check_same(self,nums):
        same_num = []
        count = 1
        for i in range(1,len(nums)):
            if(nums[i-1]==nums[i]):
                count += 1
            else:
                if(count>1):
                    same_num.append(count)
                count = 1
        if(count>1):
            same_num.append(count)
        return same_num
            
    def showDown(self , inHand: str) -> str:
        cards = inHand.split(" ")
        attr = set()
        # check tonghua
        all_type = "SHCD"
        buckets = defaultdict(int)
        flag = False
        for c in cards:
            for t in all_type:
                if(t in c):
                    buckets[t] += 1
                    if(buckets[t]>=5):
                        attr.add("a")
                        flag = True
                    break
            if(flag):
                break
        # check shunzi
        nums = []
        for c in cards:
            if(c[1:]=="A"):
                nums.append(1)
            elif(c[1:]=="J"):
                nums.append(11)
            elif(c[1:]=="Q"):
                nums.append(12)
            elif(c[1:]=="K"):
                nums.append(13)
            else:
                nums.append(int(c[1:]))
        nums.sort(reverse=-1)
        flag = self.is_continuous(nums)
        if(flag=="B" and "a" in attr):
            return "HuangJiaTongHuaShun"
        if(flag=="b" and "a" in attr):
            return "TongHuaShun"
        if(flag!=False):
            attr.add(flag)
        # check same number
        same_num = self.check_same(nums)
        for num in same_num:
            if(num==4):
                return "SiTiao"
            if(("c"+str(num)) in attr):
                attr.add("c"+str(num)+".")
            else:
                attr.add("c"+str(num))
        # other situations
        if("c3" in attr and "c2" in attr):
            return "HuLu"
        if("a" in attr):
            return "TongHua"
        if("b" in attr&nbs***bsp;"B" in attr):
            return "ShunZi"
        if("c3" in attr):
            return "SanTiao"
        if("c2" in attr and "c2." in attr):
            return "LiangDui"
        if("c2" in attr):
            return "YiDui"

nums = [
    "SA SK SQ SJ S10 H10 C9",       # 皇家同花顺
    "S2 SK SQ SJ H10 S10 S9",       # 同花顺
    "S10 S10 SQ SJ S10 H10 C9",     # 四条
    "S10 H10 SQ SJ C10 CQ",         # HULU
    "SA SK S3 SJ S10 H10 C9",       # tonghua
    "SA SK S3 SJ S10 H10 C9",       # tonghua
    "S10 H10 SQ SJ C10 C9",         # SANTIAO
    "SK HQ H5 S4 S3 C2 CA",          # SHUNZI
    "SK HK H4 S4 S3 C3 CK"          # LIANGDUI
    ]
s = Solution()
for num in nums:
    print(s.showDown(num))



全部评论
这个题看了就不想写,直接提前交卷了
点赞
送花
回复 分享
发布于 2022-09-14 21:38 湖北

相关推荐

#96年28岁其实挺小的#还没到28岁,不过也快了。没想到时间过得这么快,遥想大学毕业时我才23岁,读了个研,26了大学时我是一个风风火火的人,有想法 有干劲 有活力的人,觉得未来充满无限可能。我参加了很多的活动,也亲自作为负责人举办了全校规模的比赛,我体验了非常多不一样的事情,曾一度在一个星期内走遍了学校所有的男生宿舍去推销宣传产品,去校外拉赞助,谈''合作'' 锻炼了自己的口才,增长了自己的见识。现在想想,这些事好多都挺幼稚。但那个时候是我火一般的岁月,每天都充满激情。大学时不爱上课,所以文化课学的不怎么样,当时对这件事有遗憾,我没有高中时静心学习的能力了。后来,我想静...
大祥老师永远的0:徐霞客那一章作为七本书的尾声确实点睛之笔。 打开书时,个人的命运令我扼腕,王侯将相的事迹令我心潮澎湃,王朝的兴衰令我哀叹。 合上书后,最受用的还是最后一句话,幡然醒悟过来这些早已是过往云烟,你对它们扼腕、澎湃、哀叹其实轻于鸿毛,正如作者所言“先变成粪,后变成土”,用喜欢的方式度过自己的一生未必就不比书中的一个个名留青史的历史人物活得风采。
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务