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

此题可以使用linkedHashedSet\ArrayList\Stack\数组等来做。类似题目是输入一个数/字符串,从右往左输出,或者是输入一个数,删除重复数字输出等。

package test;

import java.awt.List;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Stack; /*
* 题目描述
* 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
* */
public class exam18 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int num = scanner.nextInt();
readOrder1(num);
// readOrder2(num);
// readOrder3(num);
// readOrder4(num);
}
scanner.close();
} public static void readOrder1(int num) {
// 方法1:使用linkedhashset有序集合
LinkedHashSet<Integer> set = new LinkedHashSet<Integer>();
while (num != 0) {
// 从右往左添加数到集合中
set.add(num % 10);
num /= 10;
}
// 使用迭代器,不知道下标
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
Object value = iterator.next();
System.out.print(value);
} } public static void readOrder2(int num) {
// 使用arraylist查看list是否包含
String str = String.valueOf(num);
ArrayList list = new ArrayList();
for (int i = str.length() - 1; i >= 0; i--) {
char ch = str.charAt(i);
if (!list.contains(ch)) {
list.add(ch);
}
}
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
} public static void readOrder3(int num) {
// 方法3:使用一个下标标示0-9的整数数组,值作为存在标记
StringBuilder sb = new StringBuilder();
int[] arr = new int[10];
while (num > 0) {
int s = num % 10;
if (arr[s] == 0) {
arr[s] = 1;
sb.append(s);
}
num /= 10;
}
System.out.println(sb.toString());
} public static void readOrder4(int num) {
// 方法4:使用栈
Stack stack = new Stack();
String str = String.valueOf(num);
for (int i = str.length() - 1; i >= 0; i--) {
char ch = str.charAt(i);
if (!stack.isEmpty()) {
if (!stack.contains(ch)) {
stack.add(ch);
}
} else {
stack.push(ch);
}
}
Iterator iterator = stack.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next());
}
}
}

java笔试之提取不重复的整数的更多相关文章

  1. php实现 提取不重复的整数(编程题目能够最快的熟悉函数)

    php实现 提取不重复的整数(编程题目能够最快的熟悉函数) 一.总结 一句话总结:编程题目能够最快的熟悉函数. 1.字符串反转函数? 没有str_revserse,有arr_reverse,这里是st ...

  2. python常见面试题讲解(八)提取不重复的整数

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 示例1 ...

  3. bitmap对海量无重复的整数排序--转

    原文地址:http://blog.csdn.net/u013074465/article/details/46956295 现在有n个无重复的正整数(n 小于10的7次方),如果内存限制在1.5M以内 ...

  4. Java笔试面试题整理第八波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  5. Java笔试面试题整理第三波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  6. Java笔试面试题整理第二波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51200163 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  7. Java笔试面试题整理第一波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  8. 应聘Java笔试时可能出现问题及其答案

    有感:应聘Java笔试时可能出现问题及其答案 huij 前段时间因为要参加一个笔试,在准备期间在网上找到了两条关于笔试题目的文章,其中一篇为<<有感:应聘Java笔试时可能出现问题> ...

  9. 疯狂位图之——位图实现12GB无重复大整数集排序

    <Programming Pearls>(编程珠玑)第一章讲述了如何用位图排序无重复的数据集,整个思想很简洁,今天实践了下. 一.主要思想 位图排序的思想就是在内存中申请一块连续的空间作为 ...

随机推荐

  1. Delphi中绘制圆角矩形的窗体

    制作圆角矩形的窗体: 01.procedure TPortForm.FormCreate(Sender: Tobject); 02.var hr :thandle; 03.begin 04.hr:=c ...

  2. NX二次开发-设置尺寸的附加尺寸UF_DRF_set_appended_text

    #include <uf.h> #include <uf_drf.h> #include <uf_obj.h> #include <uf_part.h> ...

  3. 《DSP using MATLAB》Problem 8.44

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  4. Slow HTTP POST慢速攻击

    测试工具 模拟测试工具:slowhttptest https://github.com/shekyan/slowhttptest 安装: https://github.com/shekyan/slow ...

  5. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  6. JS鼠标经过

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...

  7. js隐式类型转换,预编译、递归、作用域,作用域链、闭包、立即执行函数、继承圣杯模式

    隐式类型转换 调用Number()当有运算符(加减乘除,求余)时,会调用Number()转为数字再运算,除了 加 当 有字符串时就变身成拼接Boolean();String(); typeof()st ...

  8. openwrt_ipsec_function.sh 分析

    #!/bin/sh # # Copyright (C) Vitaly Protsko <villy@sft.ru> errno= # get_fieldval gate src " ...

  9. python: 函数递归与尾递归

    如果一个函数在内部调用自己,那么这个函数就是递归函数. 例如一个阶乘函数:fact(n)=n! ,其实可以写成 fact(n)=n x fact(n-1). fact(n) 以递归的方式可以表示为: ...

  10. C++ SOCKET 基础编程

    { http://c.biancheng.net/socket/ }