[力扣] LeetCode 7.整数反转

2020-03-01  本文已影响0人  Eromanga_Sensei
致力于找到最简洁的解题方法
Eromanga_Sensei——Izumi Sagiri
class Solution {
public:
    int reverse(int x) {
        if(x == 0) return 0;
        int Min = -2147483648, Max = 2147483647, Ans = 0;
        string s = to_string(x);
        std::reverse(s.begin(), s.end());
        if(x < 0) {
            string p = s.substr(0, s.size() - 2);
            if(-1 * atoi(p.c_str()) < Min / 10 || (atoi(p.c_str()) == Min / 10 && s[1] > '8')) return 0;
        } else {
            string p = s.substr(0, s.size() - 1);
            if(atoi(p.c_str()) > Max / 10 || (atoi(p.c_str()) == Max / 10 && s[0] > '7'))      return 0;
        }
        x < 0 ? Ans = -1 * atoi(s.substr(0, s.size() - 1).c_str()) : Ans = atoi(s.substr(0, s.size()).c_str());
        return Ans;
    }
};
上一篇 下一篇

猜你喜欢

热点阅读