788. Rotated Digits
class Solution {
public static int rotatedDigits(int N) {
int good = N;
for (int i = 1; i <= N; i++) {
boolean valid = true;
int current = i;
int converted = i;
inner: {
int m = 1;
while (current != 0) {
int digit = current % 10; // get current digit
// Convert digits regard to the specific rule
if (digit == 2) {
converted -= (digit * m);
converted += (5 * m);
} else if (digit == 5) {
converted -= (digit * m);
converted += (2 * m);
} else if (digit == 6) {
converted -= (digit * m);
converted += (9 * m);
} else if (digit == 9) {
converted -= (digit * m);
converted += (6 * m);
}
if (digit == 3 || digit == 4 || digit == 7) {
valid = false;
good--;
break inner;
}
current /= 10;
m *= 10;// next digit
}
}
if (converted == i && valid)
good--;
}
return good;
}
}
Like this:
Like Loading...
Related