首页 > 试题广场 >

提取不重复的整数

[编程题]提取不重复的整数
  • 热度指数:542946 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
保证输入的整数最后一位不是 0 。

数据范围:

输入描述:

输入一个int型整数



输出描述:

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

示例1

输入

9876673

输出

37689
Java解法,用字符串的特性求解:
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Set<Character> characters = new HashSet<>();
        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        // System.out.println("请输入要反转的数字:");
        String number = sc.next();

        for (int i = number.length() - 1; i >= 0 ; i--) {
            Character ch = number.charAt(i);
            if(!characters.contains(ch)){
                characters.add(ch);
                sb.append(ch);
            }
        }

        System.out.println(sb.toString());
    }
}

发表于 2024-09-12 16:41:18 回复(0)
import java.util.ArrayList;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str = in.nextLine();
        int length = str.length() - 1;
        ArrayList<Character> ArrayList = new ArrayList<>();
        for (int i = length; i >= 0; i--) {
            if (!ArrayList.contains(str.charAt(i))) {
                ArrayList.add(str.charAt(i));
            }
        }
        for(char ch : ArrayList){
            System.out.print(ch);
        }
    }
}

发表于 2024-09-11 22:50:58 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            String a = String.valueOf(in.nextInt());
            StringBuilder b = new StringBuilder();
            for (int i=a.length()-1; i>=0; i--) {
                if (!String.valueOf(b).contains(String.valueOf(a.charAt(i)))) {
                    b.append(String.valueOf(a.charAt(i)));
                }
            }
            System.out.println(Integer.parseInt(b.toString()));
        }
    }
}
发表于 2024-09-06 15:27:57 回复(0)
import java.util.*;
import java.io.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String s = new StringBuilder(bf.readLine()).reverse().toString();
        StringBuilder sb = new StringBuilder().append(s.charAt(0));
        for (int i = 1; i < s.length(); i++) {
            String temp = String.valueOf(s.charAt(i));
            if (!sb.toString().contains(temp)) {
                sb.append(temp);
            }
        }
        System.out.println(sb);
    }
}


发表于 2024-09-04 16:02:04 回复(0)
import java.util.*;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String string = in.nextLine();
        StringBuilder tempString = new StringBuilder(string);
        tempString = tempString.reverse();

        List<String> list = Arrays.asList(tempString.toString().split(""));
        List<String> tmpList = list.stream().distinct().collect(Collectors.toList());
        for (String str : tmpList) {
            System.out.print(str);
        }
    }
}
发表于 2024-07-15 18:02:44 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        StringBuilder sb = new StringBuilder();
        HashSet<Character> set = new HashSet<>();
        for (int i = str.length() - 1; i >= 0; i--) {
            char ch = str.charAt(i);
            if (str.lastIndexOf(ch) == i) {
                sb.append(ch);
                set.add(ch);
            }            
        }
        System.out.println(sb.toString());
    }
}

发表于 2024-07-02 22:31:33 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String line = in.nextLine();
            if(line == null || "".equals(line)){
                System.out.println("");
                continue;
            }

            StringBuilder sb = new StringBuilder();
            char c;
            for(int i=line.length()-1;i >=0;i--){
                c = line.charAt(i);
                if(i != line.length()-1){
                    if(line.substring(i+1,line.length()).contains(String.valueOf(c))){
                        continue;
                    }
                }

                sb.append(c);
            }

            System.out.println(sb);
        }
    }
}

发表于 2024-06-19 06:56:25 回复(0)
两个解法,其实都大同小异……
方法1:
import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String string = in.nextLine();
        int[] a = new int[10];
        int at;
        StringBuilder sb = new StringBuilder();
        for (int i = string.length() - 1; i >= 0; i--) {
            at = string.charAt(i) - '0';
            if (a[at] == 0) {
                a[at] = 1;
                sb.append(string.charAt(i));
            }
        }
        System.out.print(sb);
    }
}
方法2:
import java.util.*;


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String string = in.nextLine();
        HashSet<Integer> set = new HashSet<>();
        StringBuilder sb = new StringBuilder();
        for (int i = string.length() - 1; i >= 0; i--) {
            if (set.contains((int) string.charAt(i))) {
                continue;
            }
            set.add((int) string.charAt(i));
            sb.append(string.charAt(i));
        }
        System.out.print(sb);
    }
}


发表于 2024-06-13 13:26:48 回复(0)
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //System.out.println("请输入一个个位不为零的整数:");
        int num = input.nextInt();
        while (num % 10 == 0){
            //System.out.println("请重新输入:");
            num = input.nextInt;
        }
        LinkedHashSet<Integer> hashSet = new LinkedHashSet<Integer>();
//        String result = "";
        int count = 1;
        int a = num;
        while (a / 10 >= 1){//判断几位数
            count++;
            a /= 10;
        }
        for (int i = 0; i < count; i++) {
            int re = (int)(num / Math.pow(10, i) % 10);//从个位依次到最高位add到LinkedHashSet里
            hashSet.add(re);
//            result += re;
//            System.out.println(result);
        }
//        System.out.println(result);//不能解决重复的问题
        Iterator iterator = hashSet.iterator();
        while (iterator.hasNext()){
            System.out.print(iterator.next());
        }
    }

}

发表于 2024-06-01 19:41:02 回复(0)
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.close();

        // 使用 Set 来记录已经出现的数字
        Set<Character> seenDigits = new HashSet<>();
        StringBuilder result = new StringBuilder();

        // 将整数转换为字符串以便逐字符处理
        String numStr = Integer.toString(n);

        // 从右向左遍历字符串
        for (int i = numStr.length() - 1; i >= 0; i--) {
            char digit = numStr.charAt(i);
            // 如果当前数字未出现过,则添加到结果中
            if (!seenDigits.contains(digit)) {
                seenDigits.add(digit);
                result.append(digit);
            }
        }

        // 输出最终结果
        System.out.println(result.toString());

    }
}

发表于 2024-05-14 15:23:07 回复(0)
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    // 注意 hasNext 和 hasNextLine 的区别
    int a = in.nextInt();
    Set<Integer> set = new LinkedHashSet<>();
    String b = String.valueOf(a);
    for (int i = b.length() - 1; i >= 0 ; i--) {
        set.add(Integer.parseInt(b.charAt(i) + ""));
    }
    for (int s : set) {
        System.out.print(s);
    }
}

发表于 2024-05-06 07:23:27 回复(0)
从右到左输出一个然后字符串replace掉这个输出的结果,循环进行,直到字符串长度为0
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
            String a = in.nextLine();
            while(a.length()>0)
            {
               System.out.print(a.charAt(a.length()-1));
               String t =a.charAt(a.length()-1)+"";
               a=a.replace(t,"");
            }
    }
}


发表于 2024-05-01 23:16:28 回复(0)
import java.util.LinkedHashSet;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        char[] input = in.nextLine().toCharArray();

        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        for(int i=input.length-1;i>=0;i--){
            set.add(input[i]-'0');
        }

        for(Integer num:set) {
            System.out.print(num);
        }
    }
}

编辑于 2024-04-20 12:08:52 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        List<Integer> list = new ArrayList<>();
        while (num > 0) {
            int temp = num % 10;
            if (!list.contains(temp)) {
                list.add(temp);
            }
            num = num / 10;
        }
        for (Integer integer : list) {
            System.out.print(integer);
        }
    }
}
编辑于 2024-04-15 18:34:35 回复(0)
public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            String  num = in.nextLine();
            int len = num.length();
            HashSet<Character> set = new HashSet<>();
            for (int i = len-1;i>=0;i--){
                char a = num.charAt(i);
                if(!set.contains(a)){
                    set.add(a);
                    System.out.print(a);
                }
            }
        }

编辑于 2024-03-16 23:02:18 回复(0)
 while (in.hasNextInt()) { // 注意 while 处理多个 case
            StringBuilder a = new StringBuilder(in.nextLine());
            a.reverse();
            StringBuilder sb = new StringBuilder();
            for (char c : a.toString().toCharArray()) {
                if (sb.indexOf(String.valueOf(c)) == -1) {
                    sb.append(c);
                }
            }
    
            System.out.println(sb.toString());
        }
发表于 2024-03-07 17:27:08 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        HashSet has = new HashSet();
        for(int i=input.length()-1;i>=0;i--){
            if(has.add(input.charAt(i))){
                System.out.print(input.charAt(i));
            }
        }
    }
}


发表于 2024-02-28 17:38:50 回复(0)