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

提取不重复的整数

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

布隆过滤器

全部评论

相关推荐

Tom哥981:这份简历是“大一新生硬凹资深后端”的典型反面教材,槽点离谱到能让面试官直接笑出声: ### 1. 「年龄+入学时间」和项目复杂度完全脱节,可信度直接归0 你2024年7月才入学(现在刚读了1年多),19岁的大一新生,能把Vue3+Spring Boot+ShardingSphere+K8s+AI这些技术全塞进两个项目里?别说实际开发,光把这些技术的文档看完都得半年——这不是“能力强”,是“把招聘JD里的技术词全抄过来造假”,明摆着没碰过实际代码
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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