描述 | |
---|---|
知识点 | 数组 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入一个int型整数 |
输出 | 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 如果返的整数以0开头,去掉0; 如 intput:1010 output:1 |
样例输入 | 9876673 |
样例输出 | 37689 |
import java.util.Scanner;
public class RevNotRepeatNum {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = Integer.toString(scanner.nextInt());
scanner.close();
System.out.print(method(input));
}
private static int method(String input) {
StringBuilder strBuilder = new StringBuilder(input);
String str = strBuilder.reverse().toString();
String output = str.substring(0, 1);
for(int i = 1; i < str.length(); i++){
if(!output.contains(str.substring(i, i+1))){
output += str.charAt(i);
}
}
return Integer.parseInt(output); //字符串转为int,会自动去掉字串开头的0
}
}
这道题目思路如下:
1、首先将输入的int数字转换成String后,反转
2、反转后,此时判断数字是否有重复,如果有重复,则去掉
3、最后判断去掉重复数字后,数字的开头是否是0,如果是则去掉
所以 1010,输出结果是 1,而不是 10,
9876673 输出结果是 37689