649. Dota2 參議院 解題思路 R = true 表示循環結束之后 字符串仍然存在 Rflag > 0 說明R在D之前出現 R可以消滅Dflag < 0 說明D在R之前出現 D 可以消滅R一旦其中有一個為false 說明只剩下R 或者D 那么就可以決定誰獲勝遍歷字符串 如果當前字符是R 判斷flag 如果flag < 0 然后消滅R 如果不是 那么R = true 表示字符串存在R class Solution {public String predictPartyVictory(String senate) {// R = true 表示循環結束之后 字符串仍然存在 RBoolean R = true;Boolean D = true;// flag > 0 說明R在D之前出現 R可以消滅D// flag < 0 說明D在R之前出現 D 可以消滅Rint flag = 0;byte[] senates = senate.getBytes();// 一旦其中有一個為false 說明只剩下R 或者D 那么就可以決定誰獲勝while(R && D){R = false;D = false;for(int i = 0; i < senates.length; i++){if(senates[i] == 'R'){// 如果當前字符串為R 判斷flagif(flag < 0){// 消滅Rsenates[i] = 0; }else{R = true;}flag++;}if(senates[i] == 'D'){if(flag > 0){// 說明R在D之前出現 R可以消滅Dsenates[i] = 0;}else{D = true;}flag--;}}}// 循環結束之后 R D只能有一個為Truereturn R == true ? "Radiant":"Dire";} }