649.dota2-senate.go 561 B

12345678910111213141516171819202122232425262728
  1. func predictPartyVictory(senate string) string {
  2. radiant, dire := make([]int, 0), make([]int, 0)
  3. for i := range senate {
  4. if senate[i] == 'R' {
  5. radiant = append(radiant, i)
  6. } else {
  7. dire = append(dire, i)
  8. }
  9. }
  10. r, d, n := len(radiant), len(dire), len(senate)
  11. for r != 0 && d != 0 {
  12. if radiant[0] < dire[0] {
  13. dire = dire[1:]
  14. d--
  15. i := radiant[0] + n
  16. radiant = append(radiant[1:], i)
  17. } else {
  18. radiant = radiant[1:]
  19. r--
  20. i := dire[0] + n
  21. dire = append(dire[1:], i)
  22. }
  23. }
  24. if r == 0 {
  25. return "Dire"
  26. }
  27. return "Radiant"
  28. }