栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Dota2参议院-贪心649-python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dota2参议院-贪心649-python

没看答案,贪心思想。

class Solution:
    def predictPartyVictory(self, senate: str) -> str:
        '''
        贪心思想胜利策略:优先ban后面出现的敌对方,如果后面没有敌对方,ban前面出现的敌对方,直到胜利。
        '''
        sen = list(senate)

        while True:
            num_R = num_D = 0 # 当前剩余的R or D数量
            ban_R = ban_D = 0 # 当前需要ban掉的R or D数量

            for idx, ch in enumerate(sen):
                if ch == 'D':
                    if ban_D == 0: # 如果没被ban,则行使ban人权力
                        ban_R += 1
                        num_D += 1
                    else:          # 如果被ban了,则被注销为'0',并填补一个被ban名额
                        sen[idx] = '0'
                        ban_D -= 1

                elif ch == 'R':
                    if ban_R == 0: # 如果没被ban,则行使ban人权力
                        ban_D += 1
                        num_R += 1
                    else:          # 如果被ban了,则被注销为'0',并填补一个被ban名额
                        sen[idx] = '0'
                        ban_R -= 1
            
            if ban_D: # 如果R行使ban人权力时后面没有出现的D,则ban掉前面出现的D
                for idx, c in enumerate(sen):
                    if c == 'D':
                        sen[idx] = '0'
                        ban_D -= 1
                        num_D -= 1
                    if not ban_D:
                        break
            
            if ban_R: # 如果D行使ban人权力时后面没有出现的R,则ban掉前面出现的R
                for idx, c in enumerate(sen):
                    if c == 'R':
                        sen[idx] = '0'
                        ban_R -= 1
                        num_R -= 1
                    if not ban_R:
                        break

            # 如果有一方人员不再剩余,则宣布另一方获胜
            if not num_D:
                return 'Radiant'
            elif not num_R:
                return 'Dire' 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861382.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号