我的个人微信公众号:Microstrong

微信公众号ID:MicrostrongAI

公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的读书笔记!期待您的关注,欢迎一起学习交流进步!

知乎专栏:https://zhuanlan.zhihu.com/Microstrong

Github:https://github.com/Microstrong0305

个人博客:https://blog.csdn.net/program_developer

1. 给定一行字符串,求出这行字符串中出现频率最高的字符,字符串中含有标点符号,字符不区分大小写。如果出现频率相同时,输出先出现在字符串中的字符。

输入:

输入一行字符串,字符串中可能包含多个空格,也可能包含标点符号,但肯定包含字符。

输出:

输出字符的大写和出现频率。

输入样例:

Abcdefg  ahigkl Mnopq rstu o v wBBBBBB!

输出样例:

B7

已经AC代码: 

import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);String input = sc.nextLine();String strs = input.replaceAll(" ","").toLowerCase();LinkedHashMap<Character, Integer> map = new LinkedHashMap<Character, Integer>();Character CharStr = null;Integer CountmaxLength = 0;for (Character temp : strs.toCharArray()) {if (map.containsKey(temp)) { map.put(temp, map.get(temp) + 1);} else {map.put(temp, 1);}}for (Entry<Character, Integer> entry : map.entrySet()) {if (entry.getValue() > CountmaxLength) {CharStr = entry.getKey();CountmaxLength = entry.getValue();}  }System.out.println(Character.toUpperCase(CharStr)+CountmaxLength.toString());}}

2. 给你一个字符串,以这个字符串中字符出现的频率为权重,构造这个字符串的哈夫曼编码。(题目给的很长,其实意思简洁明了。)

输入样例:

abbcccdddd

输出样例:

1101111111010100000

已经AC代码:


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Scanner;public class Main2 {static class Tree {    private Node root; public Node getRoot() {          return root;        }public void setRoot(Node root) {           this.root = root;      }   }   static class Node implements Comparable<Node> {       private String Strchars = "";        private int Numfrequence = 0;      private Node parent;        private Node leftNode;      private Node rightNode; @Override      public int compareTo(Node n) {          return Numfrequence - n.Numfrequence;       } public boolean isLeaf() {         return Strchars.length() == 1;        }public boolean isRoot() {          return parent == null;        }   public boolean isLeftChild() {          return parent != null && this == parent.leftNode;        }   public int getFrequence() {         return Numfrequence;        } public void setFrequence(int frequence) {         this.Numfrequence = frequence;     }   public String getChars() {          return Strchars;        }   public void setChars(String chars) {            this.Strchars = chars;     }   public Node getParent() {           return parent;      }   public void setParent(Node parent) {            this.parent = parent;      }   public Node getLeftNode() {         return leftNode;        }   public void setLeftNode(Node leftNode) {            this.leftNode = leftNode;      }   public Node getRightNode() {            return rightNode;       } public void setRightNode(Node rightNode) {            this.rightNode = rightNode;        }   }public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);String input = sc.nextLine();Map<Character, Integer> charAndNum = statisticsCharNum(input.toCharArray());String encodedBinariStr = encode2Binary(input, charAndNum);System.out.println(encodedBinariStr);}public static Map<Character, Integer> statisticsCharNum(char[] charArray) {        Map<Character, Integer> map = new HashMap<Character, Integer>();       for (char temp : charArray) {           Character Tempchar = new Character(temp);          if (map.containsKey(Tempchar)) {                map.put(Tempchar, map.get(Tempchar) + 1);          } else {                map.put(Tempchar, 1);           }       }       return map; }/*** 构建树* @param statistics* @param leafs* @return*/private static Tree buildTree(Map<Character, Integer> statisticsChar2Num, List<Node> leafs) {   Character[] keys_char = statisticsChar2Num.keySet().toArray(new Character[0]);         PriorityQueue<Node> priorityQueue = new PriorityQueue<Node>();for (Character character : keys_char) {          Node node = new Node();            node.Strchars = character.toString();          node.Numfrequence = statisticsChar2Num.get(character);         priorityQueue.add(node);            leafs.add(node);        }   int sizeNum = priorityQueue.size();    for (int i = 1; i <= sizeNum - 1; i++) {         Node nodeOne = priorityQueue.poll();           Node nodeTwo = priorityQueue.poll();           Node totalNode = new Node();           totalNode.Strchars = nodeOne.Strchars + nodeTwo.Strchars;         totalNode.Numfrequence = nodeOne.Numfrequence + nodeTwo.Numfrequence;             totalNode.leftNode = nodeOne;          totalNode.rightNode = nodeTwo;             nodeOne.parent = totalNode;            nodeTwo.parent = totalNode;            priorityQueue.add(totalNode);       }   Tree tree = new Tree();        tree.root = priorityQueue.poll();      return tree;    }public static String encode2Binary(String inputStr, Map<Character, Integer> statisticsChar2Num) {        if (inputStr == null || inputStr.equals("")) {          return "";        }       char[] char_Array = inputStr.toCharArray();        List<Node> leaf_Nodes = new ArrayList<Node>();     buildTree(statisticsChar2Num, leaf_Nodes);      Map<Character, String> encod2BinaryInfo = buildEncoding2Binary(leaf_Nodes);      StringBuffer buffer = new StringBuffer();      for (char temp : char_Array) {          Character character = new Character(temp);         buffer.append(encod2BinaryInfo.get(character));     }       return buffer.toString();   } private static Map<Character, String> buildEncoding2Binary(List<Node> leafNodes) {        Map<Character, String> encodewords = new HashMap<Character, String>();     for (Node leafNode : leafNodes) {           Character character = new Character(leafNode.getChars().charAt(0));            String encodeword = "";          Node currentNode = leafNode;           do {                if (currentNode.isLeftChild()) {                    encodeword = "0" + encodeword;              } else {                    encodeword = "1" + encodeword;              }               currentNode = currentNode.parent;          } while (currentNode.parent != null);          encodewords.put(character, encodeword);     }       return encodewords; }
}

Reference:

【1】https://blog.csdn.net/kimylrong/article/details/17022319

3. 题目很长,读了好久都没明白题目意思。在此就不列出啦!

【华为2018年校园招聘】算法岗笔试题相关推荐

  1. 滴滴-2019+快手2020(A)-校园招聘算法工程师笔试题

    在什么情况需要对特征使用归一化处理? 要解决这个问题首先要看归一化的作用: 1.归一化可以加快梯度下降法求解最优解的速度. 当特征之间的数值变化范围相差太大时,会使得收敛路径呈Z字型,导致收敛太慢,或 ...

  2. 华为java 上机_华为校园招聘Java上机笔试题

    华为校园招聘Java上机笔试题 1.将大写字母转换成其对应小写字母后的第五个字母,大于z的从头开始数. 2.将一个十进制数(byte类型)转化二进制数,将二进制数前后颠倒,再算出颠倒后其对应的十进制数 ...

  3. 杭州java校园招聘_网易校园招聘杭州Java笔试题

    地点:杭州 职位:java研发 第一部分:计算机科学基础 (注:所有职位必做) 1.(2分)最坏情况下时间复杂度为O(nlogn)的排序算法有() A.基数排序 B.归并排序.C.堆排序 D.快速排序 ...

  4. 阿里 c语言开发工程师,阿里巴巴2014秋季校园招聘软件研发工程师笔试题

    阿里巴巴2014秋季校园招聘软件研发工程师笔试题 1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A: h(K)=K/N; B: h(K)=1; C: h(K) ...

  5. linux研发工程师笔试题,2015-8-29阿里校园招聘研发工程师笔试题

    2015-8-29阿里校园招聘研发工程师笔试题 1. 某团队有2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的至少有()人 A. 3  B. 4  C. 5 ...

  6. 2013豆瓣校园招聘研发类笔试题

    2013豆瓣校园招聘研发类笔试题 转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/11263443 1.将一个递归算法改为对 ...

  7. 多益网络2015校园招聘第二次笔试题

    多益网络2015校园招聘第二次笔试题 LZ本人大三码农一枚,今天去参加多益网络的校园招聘2笔题,发现自己的c/c++知识还需要认真啊.话不多说上题,本次总共是5道选择题,第一题读代码题就不多说了,第二 ...

  8. 2021多益网络春季校园招聘游戏研发笔试题(回忆版)

    2021多益网络春季校园招聘游戏研发笔试题 笔试题分为15道单选题,填空题,简答题,1道编程题 1单选题 就几乎是数据结构,计算机网络的题目,期末考试那种程度的选择题 2填空题 (1)求时间复杂度 ( ...

  9. 华为校招上机Java_2014年华为校园招聘Java上机笔试题

    1.将大写字母转换成其对应小写字母后的第五个字母,大于z的从头开始数. 2.将一个十进制数(byte类型)转化二进制数,将二进制数前后颠倒,再算出颠倒后其对应的十进制数.(见Test2) 3.选秀节目 ...

  10. 2014迅雷校园招聘(C++)(笔试题(四)

    迅雷2014校园招聘笔试题 转载请标明出处,原文地址:http://www.mianwww.com/html/2013/10/19169.html 温馨提示:客观题和主观题得分都要超过一定标准,才能获 ...

最新文章

  1. lintcode 中等题:subSets 子集
  2. C# NameValueCollection集合 (转)
  3. c语言课程设计 性别,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  4. 一个伟大计划终于完成了(粉丝联盟网正式上线了)
  5. php mysql 查询时间_PHP-MySQL查询需要大量时间才能执行
  6. jQuery -- 目录
  7. python语言入门q-Python基础教程中的函数
  8. Python 被爆大 Bug,攻击者可远程代码执行漏洞!
  9. Amazon亲儿子MXNet与其他框架有哪些不同?| 赠书
  10. cblas_sgemm cblas.h
  11. Windows安装WSL详解
  12. dev、test和prod是什么意思?
  13. Git报错:/c/Users/zhouy/AppData/Roaming/npm/hexo: line 12: node: command not found
  14. python 技能系统
  15. GPT-3 离通用人工智能有多近?
  16. 艾司博讯:拼多多一件代发怎么发货
  17. 深度学习-活体检测发展之数据篇(二)
  18. iNFTnews|一键生成数字藏品,VERTU Web3手机是未来吗?
  19. 分享:用Python语言轻松实现二代身份证阅读器(读卡器)自动读卡,支持定制开发
  20. 视频伪原创片头片尾 视频合并会改变md5

热门文章

  1. mtcnn人脸检测python_pytorch实现mtcnn人脸检测算法
  2. 腾讯技术工程 | 腾讯企业级消息中间件CMQ技术解密
  3. 打不开HTTPS网页的解决方案 解决打不开HTTPS 打不开安全网页 无法打开HTTPS 修复打开HTTPS
  4. dirmap Use crawl mode 报错
  5. matlab finfsym,matlab 定义f函数
  6. 几句话概括理查德成熟度模型(RESTful)
  7. 无线智能插座的Android手机客户端软件界面开发
  8. Kbengine介绍
  9. Android 显示和控制gif动态图片的播放
  10. 胶囊网络在电机故障诊断的应用