程式語言 - LeetCode - C - 649. Dota2 Senate



參考資訊:
https://www.cnblogs.com/grandyang/p/7439222.html

題目:


解答:

char* predictPartyVictory(char* senate)
{
    int i = 0;
    int j = 0;
    int size = strlen(senate);
    int cnt_r = 0;
    int cnt_d = 0;

    for (i = 0; i < size; i++) {
        if (senate[i] == 'R') {
            cnt_r += 1;
        }
        else {
            cnt_d += 1;
        }
    }

    while ((cnt_r > 0) && (cnt_d > 0)) {
        for (i = 0; i < size; i++) {
            if (senate[i] == 'R') {
                for (j = i + 1; j < (i + size); j++) {
                    if (senate[j % size] == 'D') {
                        senate[j % size] = 'X';
                        cnt_d -= 1;
                        break;
                    }
                }
            }

            if (senate[i] == 'D') {
                for (j = i + 1; j < (i + size); j++) {
                    if (senate[j % size] == 'R') {
                        senate[j % size] = 'X';
                        cnt_r -= 1;
                        break;
                    }
                }
            }
        }
    }

    return cnt_r ? "Radiant" : "Dire";
}