Mục tiêu của tôi là đảo ngược số nguyên không có số trùng lặp trong Java Làm cách nào để cải thiện độ phức tạp của mã hoặc có thuật toán tốt/chuẩn?Số nguyên Số nguyên không có số trùng lặp trong java
Trong trường hợp của chữ số trùng lặp, cần giữ gìn chữ số cuối cùng
public static void main(String[] args) {
int n = -19890;
System.out.println(reverseNumberWithoutDuplicate(n));
}
public static int reverseNumberWithoutDuplicate(int number) {
boolean isNegative = (number < 0);
number = isNegative ? number * -1 : number;
Set<Character> lookup = new HashSet<>();
StringBuffer sb = new StringBuffer();
char[] digits = String.valueOf(number).toCharArray();
for (int i = digits.length - 1; i >= 0; --i) {
if (lookup.contains(digits[i])) {
continue;
}
sb.append(digits[i]);
lookup.add(digits[i]);
}
return isNegative ? Integer.parseInt(sb.toString()) * -1 : Integer.parseInt(sb.toString());
}
sản lượng dự kiến: -981
Bạn có thể cung cấp những gì bạn muốn đầu ra không? Đối với '-19890' bạn có muốn' 981' hoặc '891' không? –
Ý của bạn là "không có số trùng lặp"? –
một chữ số nên đến một lần. –