快捷搜索: 王者荣耀 脱发

华为机试(JAVA)真题Od-字符串重新排序

题目链接:

java代码://通过重写Comparator接口里面的compare方法来实现

package com.company;

import java.util.*;

public class Mian2023020702 {
    public  static void main(String[] args){
        Scanner in =new Scanner(System.in);

        String str=in.nextLine();

        String[] data=str.split(" ");

        List<String> lists=new ArrayList<>();
        for(int i=0;i<data.length;i++){
            lists.add(toSortStr(data[i]));
        }

        //次数和单词长度对应排序
        Collections.sort(lists, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                //次数
                int n=allNum(lists,o2)-allNum(lists,o1);
                //长度
                int n1=o1.length()-o2.length();
                if(n==0 && n1==0){
                    return comAdict(o1,o2);
                }else if(n==0 && n1!=0){
                    return n1;
                }else {
                    return n;
                }

            }
        });



        for(String k:lists){
            if(!lists.get(lists.size()-1).equals(k)){
                System.out.print(k+" ");
            }else {
                System.out.println(k);
            }
        }

    }

    //字符串按字典排序
    static  String toSortStr(String str){
        String[] data=str.split("");
        Arrays.sort(data);

        String str1="";
        for(int i=0;i<data.length;i++){
            str1=str1+data[i];
        }
        return str1;
    }

    //统计data中字符串得次数
    static int allNum(List<String> lists,String str){
        int count=0;
        for(int i=0;i<lists.size();i++){
            if(lists.get(i).equals(str)){
                count++;
            }
        }
        return count;
    }

    //按字典比较
    static int comAdict(String str,String str1){

        for(int i=0;i<str.length();i++){
            if(str.charAt(i)!=str1.charAt(i)){
                return (int)str.charAt(i)-(int)str1.charAt(i);
            }
        }
        return 0;
    }


}

代码如果存在逻辑问题,欢迎指正~

经验分享 程序员 微信小程序 职场和发展