题解 | #提取不重复的整数#LinkedHashSet真是个好的数据类型,有序去重

提取不重复的整数

http://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        LinkedHashSet<Character> set = new LinkedHashSet<>();
        for(int i = num.length()-1;i>=0;i--){
            if(set.size()<10){
                set.add(num.charAt(i));//自动会去重
            }else{
                break;//大于等于10已经收集够10个数字了
            }
        }
        StringBuilder sb = new StringBuilder();
        for(Character c:set){
            sb.append(c);
        }
        System.out.println(sb.toString());
    }
}
全部评论
//普通hashset,解法 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); HashSet<integer> hashtable = new HashSet<>(); int res = 0; int temp = 0; while(num / 10 != 0){ temp = num % 10; num /= 10; if(!hashtable.contains(temp)){ res = res * 10 + temp; hashtable.add(temp); } } if(!hashtable.contains(num)){//最后一个数字 res = res * 10 + num; } System.out.println(res); } }</integer>
点赞
送花
回复
分享
发布于 2021-10-14 00:01

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务