7.jpeg

    代码 :

    1. class Solution {
    2. public:
    3. int reverse(int x) {
    4. int res = 0;
    5. while(x != 0) {
    6. // res * 10 + x % 10 > INT_MAX
    7. if(res > 0 && res > (INT_MAX - x % 10) / 10)
    8. return 0;
    9. // res * 10 + x % 10 < INT_MIN
    10. if(res < 0 && res < (INT_MIN - x % 10) / 10)
    11. return 0;
    12. res = res * 10 + x % 10;
    13. x /= 10;
    14. }
    15. return res;
    16. }
    17. };
    18. /*
    19. 123
    20. (((0 * 10 + 3) * 10) + 2) * 10 + 1
    21. */
    1. class Solution {
    2. public:
    3. int reverse(int x) {
    4. bool sign = x > 0 ? true : false;
    5. string s = to_string(x);
    6. std::reverse(s.begin(), s.end());
    7. int res = 0;
    8. try {
    9. res = stoi(s);
    10. }
    11. catch (std::out_of_range&){
    12. return 0;
    13. }
    14. if(!sign) return -1 * res;
    15. return res;
    16. }
    17. };