1. 题目
读题
提取不重复的整数
考查点
我觉得这道题的考查点有以下几个:
- 字符串的遍历和操作,如charAt(), indexOf(), toCharArray()等方法的使用。
- 集合类的使用,如HashSet的特性和方法,或者StringBuilder的特性和方法。
- 数组的使用,如boolean数组的初始化和赋值。
- 逻辑思维和编程技巧,如如何从右向左读取数字,如何判断数字是否重复,如何输出结果等。
2. 解法
思路
使用HashSet存储不重复的数字,然后从后往前遍历字符串,如果HashSet中不包含当前字符,就将其加入HashSet并输出
代码逻辑
具体实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class HJ009 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int num = sc.nextInt(); System.out.println(removeDuplicatied(num)); } // int num = 9876673; // System.out.println(removeDuplicatied(num)); } public static int removeDuplicatied( int num) { Set<Integer> set = new HashSet<>(); String s = num + "" ; StringBuilder sb = new StringBuilder(); for ( int i = s.length() - 1 ; i >= 0 ; i--) { int curr = s.charAt(i) - '0' ; if (set.contains(curr)) { continue ; } sb.append(curr); set.add(curr); } return Integer.parseInt(sb.toString()); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2018-06-07 数据库之笛卡尔积