---
title: 'LeetCode 7. Reverse Integerr'
disqus: hackmd
---
# LeetCode 7. Reverse Integer
## Description
Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
## Example
Input: x = 123
Output: 321
Input: x = -123
Output: -321
## Constraints
-2^31^ <= x <= 2^31^ - 1
## Answer
此題可藉由取餘數將每個數字都抓出,然後再檢查有無overflow,若有就return 0,若無就繼續做計算,直到x完全解析完成即可return ans。
```Cin=
int reverse(int x){
int ans = 0, tmp = 0, flag = 0;
if(x<0){flag = 1;}
while(x){
tmp = x%10;
if(!flag && ans > (INT_MAX-tmp)/10){return 0;}
if(flag && ans < (INT_MIN-tmp)/10){return 0;}
ans = ans * 10 + tmp;
x/=10;
}
return ans;
}
```
## Link
https://leetcode.com/problems/reverse-integer/
###### tags: `Leetcode`