题解 | #提取不重复的整数#
提取不重复的整数
https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String strings = in.nextLine();
int lenght = strings.length();
/*
* 可以使用布隆过滤器的思想:
* 从右到左边读取数字,因为每次都是读取一个数字,所以可以构造一个 10 位的数组 ~
* 当录入一个数字,录入的时候判断,如果数组位置的值为 1 则说明重复数字,跳过;
* 否则说明是第一次录入,设置数组位置为 1,并且拼接数字到 StringBuilder
*/
// [0,1,2,3,4,5,6,7,8,9]
int[] arr = new int[10];
StringBuilder sb = new StringBuilder();
for(int i = lenght - 1; i >= 0; i--) {
char c = strings.charAt(i);
int n = Character.getNumericValue(c);
if(arr[n] == 1) {
continue;
} else {
arr[n] = 1;
sb.append(c);
}
}
System.out.println(sb.toString());
}
}
布隆过滤器
查看3道真题和解析