此题出自牛客网的华为机试在线训练专题
题目描述
输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
输入描述:
输入一个int型整数
输出描述:
按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689
题解如下
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int num = sc.nextInt();
String s = String.valueOf(num);
int len = s.length();
int[] arr = new int[10];//0~9刚好为10个数
for(int i = len-1;i>=0;i--){
if(arr[s.charAt(i)-48]==0){
System.out.print(s.charAt(i)-48);
arr[s.charAt(i)-48]++;
}
}
}
sc.close();
}
}
关键点:
申请一个空间为10个int类型的数组记录每一个数出现的次数,只输出次数为0的数,然后将该记录数加一。这里申请10个数组空间是因为0—9刚好为10个数