题解 | #提取不重复的整数#

提取不重复的整数

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());
    }
}

布隆过滤器

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务