My solution.
int f(int n) {
if (n <= 0) return n;
int digits = (int)log10(n) + 1;
int m = 0;
int flag[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
for (int i = digits - 1; i >= 0; --i) {
int p = (int)pow(10.0, i);
int d = n / p;
n %= p;
if (flag[d] > 0) continue;
flag[d] = 1;
m = 10 * m + d;
}
return m;
}
--
You received this message because you are subscribed to the Google Groups
"Algorithm Geeks" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.