class Solution { public: int largestInteger(int num) { priority_queue<int> odds, even; vector<int> digits; while(num) { int digit = num % 10; if(digit & 1) { odds.push(digit); }else { even.push(digit); } digits.push_back(digit); num /= 10; } int sum = 0; for(int i = digits.size() - 1; i >= 0; i --) { sum *= 10; if(digits[i] & 1) { sum += odds.top(); odds.pop(); } else { sum += even.top(); even.pop(); } } return sum; } };
|