提取不重复的整数
描述: 输入一个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