class Solution {
public:
std::string makeSmallestPalindrome(std::string s) {
int n = s.size();
int mid = n - 1 >> 1;
for (int l = mid, r = n>>1; l >= 0 && r < n; l--, r++) {
if (s[l] != s[r]) {
if (s[l] < s[r]) s[r] = s[l];
else s[l] = s[r];
}
}
return s;
}
};