字符串去重及排序

  1. [编程|100分] 字符串去重及排序
    时间限制:C/C++ 1秒,其他语言 2秒
    空间限制:C/C++ 32768K,其他语言 65536K
    题目描述
    输入一个长度不超过10位的正整数,从左向右阅读,去除重复的数字,再从右向左阅读,返回一个新的整数。

输入描述:
一个长度不超过10位的正整数
输出描述:
去重重排后的一个正整数
示例1
输入
98766730
输出
36789

package HWday02;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Demo1_hj {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int m=in.nextInt();
        int [] temp=new int[10];
        int [] input=new int[10];
        List<Integer> list1=new ArrayList<>();
        List<Integer> list2=new ArrayList<>();
        int n=0;
        while (m!=0){
            n=m%10;   //取后一位
            m=m/10;
            list1.add(n);
        }
        for(int i=list1.size()-1;i>=0;i--){
            list2.add(list1.get(i));
        }
        List<Integer> result=SortRepeat(list2);
        int out=result.size()-1;
        for(int i=result.size()-2;i>=0;i--){
            out=out*10+result.get(i);
        }
        System.out.println(out);
    }
    //去重
    public static List<Integer>  SortRepeat(List<Integer>  number){
        List<Integer> result=new ArrayList<>();
        result.add(number.get(0));
        for(int i=1;i<number.size();i++){
            Boolean p=true;
           for(int j=0;j<i;j++){
               if(number.get(i)==number.get(j)){
                 p=false;
               }
           }
           if(p==true){
               result.add(number.get(i));
           }
       }
       return  result;
    }

}

猜你喜欢

转载自blog.csdn.net/u014651560/article/details/80188628