提取不重复的整数

时间:2021-11-11 18:52:17

提取不重复的整数

描述: 输入一个int型32位整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

运行时间限制: 10 Sec

内存限制: 无限制

输入: 整数,如9876673

注意:

1、整数最后的0,请忽略,例如:输入1750,输出:571

2、负数,保留’-‘在前面,例如:输入-175,输出:-571

输出: 整数,如37689

样例输入: 9876673

样例输出: 37689

代码:

import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;

/**
* @author Hutongling
*
* @time:2017年4月9日 下午2:27:59
*/

public class 提取不重复的整数 {

static int extractUnrepeatedNum(int num) {
Set<Integer> set = new LinkedHashSet<>();
String string = num + "";
char fuHao = string.charAt(0);
int result = 0;
if (fuHao != '+' && fuHao != '-') {
for (int i = string.length() - 1; i >= 0; i--) {
if (string.charAt(i) != '0')
set.add(string.charAt(i) - '0');
}
System.out.println(num+"中从尾部开始不重复的元素有:" + set);
Iterator<Integer> setIterator = set.iterator();
while (setIterator.hasNext()) {
result = result * 10 + setIterator.next();
}

}else if(fuHao=='+' || fuHao=='-'){
for (int i = string.length() - 1; i >= 1; i--) {
if (string.charAt(i) != '0')
set.add(string.charAt(i) - '0');
}
System.out.println(num+"中从尾部开始不重复的元素有:" + set);
Iterator<Integer> setIterator = set.iterator();
while (setIterator.hasNext()) {
result = result * 10 + setIterator.next();
}
result=(fuHao =='-'? -result:result);
}
return result;
}
public static void main(String[] args) {
System.out.println(extractUnrepeatedNum(+9876673));
System.out.println(extractUnrepeatedNum(-1750));
System.out.println(extractUnrepeatedNum(-0));
System.out.println(extractUnrepeatedNum(+0));
}

}

代码结果:

9876673中从尾部开始不重复的元素有:[3, 7, 6, 8, 9]
37689
-1750中从尾部开始不重复的元素有:[5, 7, 1]
-571
0中从尾部开始不重复的元素有:[]
0
0中从尾部开始不重复的元素有:[]
0