zoukankan      html  css  js  c++  java
  • 2020校招笔试

    未知题目

    题目描述

    将字符 A ~ Z,对应记为数字 1 ~ 26,对任意字符串 X (由 A ~ Z 组成),可将 X 种每个字符对应的数字计算出平均值 N
    如 X = "ABC",N = 2,并可得到字符"A"与 N 的绝对差为 1,"B"与 N 的绝对差为 0,"C" 与 N 的绝对差为 1.
    请编写程序,对输入的任何字符串 X (由 A ~ Z组成),计算 X 中,各字符的绝对差,并按绝对由大到小顺序重新输出字符串。

    样例输入

    BFRTSG

    样例输出

    BTSFRG
    说明: N = (2+6+18+20+19+7)/6 = 12
    则BFRTSG分别为10、6、6、8、7、5

    编码

    import java.util.*;
    
    public class Main {
        private static class Num implements Comparable<Num>{
            char c;
            int val;
            Num(char c, int val){
                this.c = c;
                this.val = val;
            }
    
            @Override
            public int compareTo(Num num) {
                return num.val - this.val;
            }
        }
        public static void main(String[] args) {
            Scanner scn = new Scanner(System.in);
            List<Num> list = new ArrayList<>();
            String str = scn.next();
            int sum = 0;
            for(int i =  0; i < str.length(); ++i) {
                sum += str.charAt(i)-'A'+1;
            }
            sum /= str.length();
            for(int i = 0; i < str.length(); ++i) {
                char tmp = str.charAt(i);
                list.add(new Num(tmp, Math.abs(tmp-'A'+1-sum)));
            }
            Collections.sort(list);
            for(Num num : list) {
                System.out.print(num.c);
            }
            System.out.println();
        }
    }
    
  • 相关阅读:
    冲刺第十三天
    冲刺第十二天
    冲刺第十一天
    Android Studio三种运行方法
    第十三周学习进度
    冲刺第一阶段意见评论
    第十二周学习进度
    冲刺第十天
    大二暑假周总结(五)
    大二暑假周总结(四)
  • 原文地址:https://www.cnblogs.com/qq188380780/p/11508550.html
Copyright © 2011-2022 走看看