Interview 150
Reverse Integer
- Problem
- LC 7
- File
- interview150_LC7ReverseInteger.java
- Path
- pkg5leetcode/interview150/interview150_LC7ReverseInteger.java
- Package
- pkg5leetcode.interview150
- Command
- java pkg5leetcode/interview150/interview150_LC7ReverseInteger.java
- Approach
- Pop/push digits; check overflow before multiplying by 10.
- Complexity
- Time O(log n), Space O(1)
There is no in-browser runner. This is the file from the curriculum, unchanged.
1package pkg5leetcode.interview150;2 3/*4 * Reverse Integer | LC 75 * APPROACH: Pop/push digits; check overflow before multiplying by 10.6 * COMPLEXITY: Time O(log n), Space O(1)7 */8public class interview150_LC7ReverseInteger {9 static int reverse(int x) {10 int rev = 0;11 while (x != 0) {12 int pop = x % 10;13 x /= 10;14 if (rev > Integer.MAX_VALUE / 10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;15 if (rev < Integer.MIN_VALUE / 10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;16 rev = rev * 10 + pop;17 }18 return rev;19 }20 21 public static void main(String[] args) {22 check(reverse(123) == 321, "case1");23 check(reverse(-123) == -321, "case2");24 check(reverse(120) == 21, "case3");25 System.out.println("all tests passed");26 }27 28 static void check(boolean cond, String name) {29 if (!cond) throw new AssertionError("FAILED: " + name);30 System.out.println(" PASS " + name);31 }32}