输入一个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 让子窗体显示在任务栏上

    重载 CreateParams 方法即可 声明: procedure CreateParams(var Params: TCreateParams);override; procedure TForm ...

  2. NX二次开发-UFUN打开选择文件夹对话框UF_UI_create_filebox

    #include <uf.h> #include <uf_ui.h> #include <string> using namespace std; string O ...

  3. BZOJ3211花神游历各国-线段树&树状数组-(HDU4027同类型)

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:BZOJ HDU  原题目描述在最下面.  两种操作,1:把区间的数字开方一次,2:区间求和. 思路: 线段树:  显然不能暴力 ...

  4. python入门 元组tuple (三)

    什么if while语句了 列表字典都太简单了 ,我直接跳过了, 开始写tuple了 增 元组格式是写在括号里,注意与列表(写在中括号里)的区别 tup1 = ('math', 'beijing', ...

  5. LOJ #113. 最大异或和 (线性基)

    题目链接:#113. 最大异或和 题目描述 这是一道模板题. 给由 \(n\) 个数组成的一个可重集 \(S\),每次给定一个数 \(k\),求一个集合 \(T \subseteq S\),使得集合 ...

  6. java 传入多个参数时报"Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,..." 解决方案

    @Select("SELECT id FROM ae_post ORDER BY id DESC LIMIT #{page},#{size}") List<Post> ...

  7. Spring Cloud Feign设计原理

    什么是Feign? Feign 的英文表意为“假装,伪装,变形”, 是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直 ...

  8. 【洛谷】P1009阶乘之和

    题目链接:https://www.luogu.org/problemnew/show/P1009 题意:给一个整数n(n<50),求$ \sum^{n}_{i=1} i! $ 题解:我..拿py ...

  9. mysql连接数问题备份

    一. max_connections 这是是查询数据库当前设置的最大连接数 mysql> show variables like '%max_connections%';+----------- ...

  10. PHP 添加 跨域头

    我将下面的代码,放在Codeigniter 项目中的index.php 中的 header('Access-Control-Allow-Origin: *'); header('Access-Cont ...