华为机试题 HJ9提取不重复的整数
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试题 HJ9提取不重复的整数相关的知识,希望对你有一定的参考价值。
HJ9 提取不重复的整数
题目描述
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.TreeSet;
今后手动导这么多包麻烦,牺牲内存的,之前全导入就好了;
import java.io.*;
import java.util.*;
参考代码1
主要是利用集合的元素唯一性,但集合输出的元素又是不确定性的,不能按我们放入的顺序输出,所以需要再结合StringBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.TreeSet;
// import java.io.*;
// import java.util.*;
public class Main
public static void main(String[] args) throws IOException
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str;
while((str=br.readLine()) != null)
StringBuilder sb = new StringBuilder();
TreeSet<Character> set = new TreeSet();
for(int i = str.length() - 1; i >= 0; i--)
char ch = str.charAt(i);
if (!set.contains(ch))
sb.append(ch);
set.add(ch);
System.out.println(sb);
参考代码2
import java.util.*;
import java.io.*;
public class Main
public static void main (String [] args) throws IOException
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int [] cnt = new int [10]; // 10个数,默认为0
int num = Integer.parseInt(str);
StringBuilder sb = new StringBuilder();
while (num > 0)
int digital = num % 10;
if (cnt[digital] == 0) // 如果首次出现
sb.append(digital);
cnt[digital]++;
num /= 10;
System.out.println(sb.toString());
以上是关于华为机试题 HJ9提取不重复的整数的主要内容,如果未能解决你的问题,请参考以下文章