Maximum Swap LeetCode solution in C++
1class Solution {2public:3int maximumSwap(int num) {4string st_n = to_string(num);5int maxNum = -1, maxIdx = -1;6int leftidx = -1, rightidx = -1;7for (int i = st_n.size() - 1; i >= 0; i--) {8if (st_n[i] > maxNum) {9maxNum = st_n[i];10maxIdx = i;11continue;12}1314if (st_n[i] < maxNum) {15leftidx = i;16rightidx = maxIdx;17}18}19if (leftidx == -1) return num;2021swap(st_n[leftidx], st_n[rightidx]);22return stoi(st_n);23}24};