我的目標是反轉整數在Java中沒有重複數字 如何提高代碼的複雜性或存在一個好的/標準算法?反向整數在java中沒有重複數字
重複數字的櫃面,應該保留最後一位
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());
}
預期輸出:-981
你可以給你想要的輸出嗎?對於'-19890',你想要'981'還是'891'? –
你是什麼意思「沒有重複號碼」? –
一位數字應該來一次。 –