LeetCode:649. Dota2 参议院(java实现)

这道题我真的是遭了大坑了,一直死在一个问题上,原因就是我忘了字符串的值不能被直接修改!!!!修改后是返回一个新字符串
在这里插入图片描述

题目

在这里插入图片描述在这里插入图片描述`

class Solution {
public String predictPartyVictory(String senate) {
    	  //R和D 可以看作两个对象,这两个对象各自都有 自己被ban和ban别人的属性
    	  
    	  int banR=0;
    	  int banD=0;
    	  char[] newsen=new char[senate.length()];
    	  for(int i=0;i<senate.length();i++) {
    		  newsen[i]=senate.charAt(i);
    	  }
    	  while(true) {
    		  for(int i=0;i<senate.length();i++) {
    			  if(newsen[i]=='R') {
    				  if(banR==0) {
    					  banD++;
    				  }else {
    					  banR--;
    					  newsen[i]='X';
    				  }
    			  }else if(newsen[i]=='D') {
    				  if(banD==0) {
    					  banR++;
    				  }else {
    					  banD--;
					  newsen[i]='X';
    				  }
    			  }
    		  }
              boolean existD=false,existR=false;
              for(int i=0;i<newsen.length;i++){
                  if(newsen[i]=='R'){
                      existR=true;
                  }if(newsen[i]=='D'){
                      existD=true;
                  }
              }
              if(existD==false){
                  return "Radiant";
              }if(existR==false){
                  return "Dire";
              }
    	  }
      }
}

猜你喜欢

转载自blog.csdn.net/qq_42405666/article/details/89550449