刚刚做完笔试题目,题目具体内容记得不是很清楚了,请见谅。一共三道题目,时间120分钟。

第一题

题目描述

输入一行字符串(字母或者数字,可能含重复值),按照其ASCII码顺序输出。

比如:

输入  

eeefffgghhk

次数统计

e —— 3次
f —— 3次
g ——2次
h —— 2次
k —— 1次

输出

efghkefghef

提交代码

import java.util.*;
public class Main{
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();char[] charArray = input.toCharArray();//建立ASCII码数组,下标即对应的ASCII值int[] asciiArray = new int[127];//统计每个ASCII字符出现的次数for (int i = 0; i < charArray.length; i++) {asciiArray[charArray[i]]++;}StringBuilder sb = new StringBuilder();//标记位 如果数组所有次数减为0,则退出循环int zeroCount = 0;while (zeroCount != 127) {zeroCount = 0;for (int j = 0; j < asciiArray.length; j++) { //循环遍历已经实现了按照ASCII值排序if (asciiArray[j] != 0) {char ch = (char) j;  //拿到当前位的字符sb.append(ch);       //添加到输出asciiArray[j]--;     //次数减一} else {zeroCount++;}}}System.out.println(sb.toString());}
}

第二题

题目描述

输入多行数字,第一行数字代表加下来要输入的数字个数。每个数字的值代表其可以向后跳跃的最长长度,求从第一位跳到最后一位的最短步数。

比如:

输入

7
2
3
2
1
2
1
5

得到

2 3 2 1 2 1 5

输出

3

解析:最短路径为 2-2-2-5或者 2-3-2-5,都是跳3步到最后一位

解题思路

一看就是用回溯算法

import java.util.*;
public class Main{static int curStep = 0;static int minStep = 0;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();int[] nums = new int[num];for (int i = 0; i <  num; i++)nums[i] = scanner.nextInt();jumpToLast(nums, 0);System.out.println(minStep - 1);}private static void jumpToLast(int[] array, int curPosition) {//超过if (curPosition > array.length - 1) {return;}//刚好else if (curPosition == array.length - 1) {curStep++;  //向前if (minStep == 0 || curStep < minStep)minStep = curStep;  //更新最小步数curStep--;  //回退return;}//还没到尽头else{curStep++;  //向前for (int i = 1; i <= array[curPosition]; i++) {jumpToLast(array,curPosition + i);}curStep--;  //回退}}
}

第三题

题目描述

大整数(正数,位数不限)相乘,求乘积。输入两行字符串,输出乘积的字符串

比如:

输入

1234
4321

输出

5332114

解题思路

代码提交

import java.util.*;
public class Main{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String num1 = scanner.nextLine();String num2 = scanner.nextLine();int len1 = num1.length();int len2 = num2.length();//新建一个数组用于存放结果,位数最多不超过totalLenint totalLen = len1 + len2;int[] resultArray = new int[totalLen];//存放进位int carry = 0;//在数组中的存放位置移动指针(初始为最高位)int index = totalLen - 1;for (int i = len1 - 1; i >= 0; i--){//遍历num1,从右侧(低位)开始int tempNum1 = num1.charAt(i) - '0';//遍历num2,每一位都与num1的当前位相乘for (int j = len2 - 1; j >= 0; j--) {int tempNum2 = num2.charAt(j) - '0';//每一次算和的时候都要加上原来在该位置处的值以及进位int sum = resultArray[i + j + 1] + tempNum1 * tempNum2 + carry;//进位carry = sum / 10;//新值resultArray[i + j + 1] = sum % 10;}//进位不为0,则需在数组中体现if (carry != 0)resultArray[i] = carry;//进位清零carry = 0;}StringBuilder sb = new StringBuilder();if (resultArray[0] != 0)sb.append(resultArray[0]);for (int k = 1; k < totalLen; k++) {sb.append(resultArray[k]);}System.out.println(sb.toString());}
}

花了一个半小时写完,感觉还是有点紧张,当时做这道题的时候,【进位】和【新值】那边的/号和%号就写反了。不过很开心都做出来了~~~

华为2018实习生软件岗机试题目(2018.04.10)相关推荐

  1. 华为2014校园招聘的机试题目

    华为2014校园招聘的机试题目和2013年的完全一样. 一.题目描述(60分): 通过键盘输入一串小写字母(a~z)组成的字符串.请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的 ...

  2. 华师大c语言作业答案,2018华东师范大学计算机系机试题目代码

    Problem A 给一个小学生都会算的1位数与1位数运算的代数式,请你求出这个表达式的值. 表达式仅含+-*/四种运算,题目保证0不为除数. Sample Input 1: 1+1 Sample O ...

  3. 循环相乘取整法C语言,华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...

    题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...

  4. 华为机试题目:工单调用策略

    华为机试题目来源:华为优招机试(2021年7月7) - 代码先锋网 一.工单调用策略 当小区通信设备上报警时,系统会自动生成待处理的工单,华为工单调度系统需要根据不同的策略,调度外线工程师(FME)上 ...

  5. 虹软2023自动驾驶算法岗机试

    文章目录 虹软2023自动驾驶算法岗机试 不定项选择 算法题 白色斑点数量 跳楼梯 题干 我的思路 最小素因子集数 问答题 虹软2023自动驾驶算法岗机试 牛客系统, 一共有三个题型, 总时间两小时 ...

  6. 华为2014校园招聘合肥机试

    华为2014校园招聘合肥机试,简历投晚了,没去参加机试,题目是听参加的同学描述的,大致意思如下 第一题:整数分解,将整数n分解成不同因子的和,后一因子要比前一因子大,且最大因子要小于n,其中n< ...

  7. 北理计算机考研机试,北理工计算机2000-2010考研机试题目c语言实现.doc

    北理工计算机2000-2010考研机试题目c语言实现 北理工计算机2000-2010考研机试题目c语言实现1.进制转换#include #include //#include #include #in ...

  8. 2019-6浙江工业大学计算机学院转专业二志愿机试题目

    因为转专业可以报两个志愿,所以这次带来了二志愿的题目,难度并没有变化太多,这次很幸运通过了机试,但又倒在了面试上,遗憾之情难以言表,下次再来8 相关链接 2019-5转专业一志愿机试题目 2019-1 ...

  9. 计算机保研面试基础知识,华科计算机保研复试机试题目

    华中科技大学复试机试题目 2008年 一. 1.狼过河问题(运用到回溯) 2.统计文件中单词数目 3.N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(递归) 4.链表操作 二. 第一个是 ...

最新文章

  1. 百万数据修改索引,百万数据修改主键
  2. 为什么说「中台」程序员未来会最值钱?
  3. 利用JS获取IE客户端IP及MAC的实现
  4. java arraylist 序列化_无法序列化/反序列化ArrayList
  5. idea 快捷键在方法上抛出异常
  6. 光盘刻录制作Ubuntu等操作系统的启动盘
  7. Chrome插件(扩展)
  8. 「云+未来」上海峰会,报名开启
  9. 不花钱、不买服务器可以搭建个人博客吗?快进来,给你安排!
  10. scala Basic 第三课
  11. k310.4安装客户端提示self-registration error
  12. 一、首页、详情页、文章编辑页制作《iVX低代码/无代码个人博客制作》
  13. 那些年,我深爱着的PPT
  14. 不同形式弧微分的求解
  15. Oracle Becomes 2nd Largest Software Company
  16. 设备综合效率OEE:基于数采的OEE优化分析
  17. widows下安装pycurl并利用pycurl请求https地址
  18. 班章管家有20万想去理财,买什么理财产品靠谱一点?
  19. 华为笔记本linux usb启动,华为MateBook D(2018) BIOS设置u盘启动教程
  20. 移动web微金所实战项目——导航栏

热门文章

  1. 关于在安装虚拟机的时候的一个小问题,pe系统没有分区工具
  2. 本书简介(Kali Linux Revealed 1st)
  3. ENFJ型人格的性格缺陷和心理问题分析
  4. 在游戏中学编程不好吗?8大游戏总有一个适合你吧?
  5. 《互动教程 for Illustrator CC》中文版正式发布
  6. 系统安装文件是php,电脑重装系统文件会丢失吗
  7. 从零开始构建嵌入式实时操作系统3——任务状态切换
  8. Html+JavaScript+百度地图api:GPS功能单点运动
  9. 如何利用360卫士、腾讯管家屏蔽、拦截电脑上常见恶意弹窗广告的骚扰
  10. html5 gps 坐标转高德地图坐标,GPS坐标转百度地图坐标的方法