Build a solution step by step. The following function changes the digits of a positive number.
int reverseNumber(int number) { int answer = 0; for (int n = number; n != 0; n /= 10) {
This code can be easily adapted to work with negative numbers:
int reverseNumber(int number) { if (number < 0) { return -reverseNumber(-number); }
Our next goal is to skip duplicate numbers. We will track the list of already seen digits in boolean[] seen .
private static int reverseNumberWithoutDuplicate(int number) { if (number < 0) { return -reverseNumberWithoutDuplicate(-number); } boolean[] seen = new boolean[10]; int answer = 0; for (int n = number; n != 0; n /= 10) { int digit = n % 10; if (!seen[digit]) { seen[digit] = true; answer = answer * 10 + digit; } } return answer; }
source share