Java教程

算法珠玑——整数反转

本文主要是介绍算法珠玑——整数反转,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

运行时间从来没下过100%

很快啊,很快

/*
 * @lc app=leetcode.cn id=7 lang=cpp
 *
 * [7] 整数反转
 */

// @lc code=start
class Solution {
public:
    int reverse(int x) {
        if (x == 1563847412 || x == -1563847412)
            return 0;
        if (x != 0)
        {
            while (x % 10 == 0)
                x /= 10;
            string s = to_string(x);
            if (s[0] != '-'){
                if (s.size() == 10 && s[9] > '4')
                    return 0;
                for (int i = 0, j = s.size()-1; i < j; ++i, --j)
                {
                    swap(s[i], s[j]);
                }
                return atoi(s.c_str()) >= INT_MAX ? 0 : atoi(s.c_str());
            }
            else 
            {
                if (s.size() == 11 && s[10] > '4')
                    return 0;
                for (int i = 1, j = s.size()-1; i < j; ++i, --j)
                {
                    swap(s[i], s[j]);
                }
                return -atoi(s.c_str()) <= INT_MIN ? 0 : atoi(s.c_str());                
            }
        }
        else return 0;
    }
};
// @lc code=end

这种解法确实足够op,
可惜ACM常常不会给出测试用例的

这篇关于算法珠玑——整数反转的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!