1class Solution {2public:3bool sumGame(string num) {4const int N = num.length();56int lDigitSum = 0;7int lQCount = 0;8int rDigitSum = 0;9int rQCount = 0;1011for (int i = 0; i < N; ++i) {12if (isdigit(num[i])) {13if (i < N / 2) {14lDigitSum += (num[i] - '0');15} else {16rDigitSum += (num[i] - '0');17}18} else {19if (i < N / 2) {20++lQCount;21} else {22++rQCount;23}24}25}2627// Case 0: Only digits (without '?')28if ((lQCount + rQCount) == 0) {29return (lDigitSum != rDigitSum);30}3132// Case 1: Odd number of '?'33if ((lQCount + rQCount) % 2 == 1) {34return true;35}3637// Case 2: Even number of '?'38int minQCount = min(lQCount, rQCount);39lQCount -= minQCount;40rQCount -= minQCount;41return (lDigitSum + 9 * lQCount / 2 != rDigitSum + 9 * rQCount / 2);42}43};