Dota2 参议院

func predictPartyVictory(senate string) string {
	str := []byte(senate)
	rCount, dCount := -1, -1
	rCanPass, dCanPass := 0, 0
 
	for rCount != 0 && dCount != 0 {
		rCount, dCount = 0, 0
		for i, char := range str {
			switch char {
			case 'R':
				if rCanPass > 0 { // 被取消发言权
					rCanPass--
					str[i] = ' '
				} else { // 可以取消 dCanPass 个 D 的发言权
					dCanPass++
					rCount++
				}
			case 'D':
				if dCanPass > 0 {
					dCanPass--
					str[i] = ' '
				} else {
					rCanPass++
					dCount++
				}
			}
		}
	}
 
	if dCount > 0 {
		return "Dire"
	}
	return "Radiant"
}