Leetcode 7. Reverse Integer

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Reverse Integer

2. Solution

  • Two loops
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public:
int reverse(int x) {
if(x == 0 || x == INT_MIN) {
return 0;
}
int remainder = 0;
int y = abs(x);
queue<int> number;
while(y) {
remainder = y % 10;
number.push(remainder);
y /= 10;
}
int result = 0;
while(!number.empty()) {
if((INT_MAX - number.front()) / 10 < result) {
return 0;
}
result = result * 10 + number.front();
number.pop();
}
return x == abs(x)?result:-result;
}
};
  • One loop
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    class Solution {
    public:
    int reverse(int x) {
    if(x == 0 || x == INT_MIN) {
    return 0;
    }
    int y = abs(x);
    int result = 0;
    int remainder = 0;
    while(y) {
    remainder = y % 10;
    if((INT_MAX - remainder) / 10 < result) {
    return 0;
    }
    result = result * 10 + remainder;
    y /= 10;
    }
    return x == abs(x)?result:-result;
    }
    };

Reference

  1. https://leetcode.com/problems/reverse-integer/description/
如果有收获,可以请我喝杯咖啡!