欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

整数反转

程序员文章站 2022-06-17 20:25:45
...

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

python实现代码:

class Solution:
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        x = int(str(x)[::-1]) if x >= 0 else - int(str(-x)[::-1])
        return x if x < 2147483648 and x >= -2147483648 else 0
        
if __name__ == '__main__':
	mySolution = Solution()
	result = mySolution.reverse(-123)
	print(result)

C实现代码:

#include <stdio.h>

int reverse(int x) {
    long ans = 0;
    const int maxint = 2147483647;
    const int minint = -2147483648;
    while (x!=0)
    {
        ans = ans*10+(x%10);
        x /= 10;
    }
    if (ans<minint || ans>maxint)
    {
        ans = 0;
    }
    return ans;
}

int main()
{
    int x = -123, y;
    y = reverse(x);
    printf("%d\n", y);
    return 0;

}