华为2018实习春招笔试

2024-08-24 20:18
文章标签 笔试 华为 实习 2018 春招

本文主要是介绍华为2018实习春招笔试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录一下今天华为笔试题,表示第二第三题无压力能解决,第一题刚上来代码通过百分之十,很无语,后面直接先放着,写后面。运气来的太好?我写到40几分钟,他们好多人都结束了,这有点夸张吧,神通广大呀,他们,虽然我给他们贡献了第二题,第三题!!!惊讶,后来,第一题我直接在群里问了下,小伙伴还是很给力的助力了一波,赞!特此来记录一番!

1、

[编程|100分] 字符串重排
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++ 32768K,其他语言 65536K
题目描述
给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。
举例!假设原始字符串为:
eeefgghhh
则每种字符出现的次数分别是:
(1).eee        3次
(2).f          1次
(3).gg         2次
(4).hhh        3次
重排输出后的字符串如下:
efghegheh
编写程序,实现上述功能。
【温馨提示】
(1).原始字符串中仅可能出现“数字”和“字母”;
(2).请注意区分字母大小写。输入描述:
eeefgghhh
输出描述:
efghegheh
示例1
输入eeefgghhh
输出efghegheh

import java.util.Scanner;
public class Main {    public static void main(String[]args){        Scanner scanner = new Scanner(System.in);        String s = null;        int [] data = new int[128];        while (scanner.hasNext()){            s = scanner.nextLine();            char [] c = s.toCharArray();            int max = -1;            int length = c.length;            for(int i=0;i<length;i++){                data[c[i]-0]++;            }            for(int j=0; j<128;j++){                max = max>data[j]?max:data[j];            }            for(int k=0;k<max;k++){                for(int m=0;m<128;m++){                    if(data[m]!=0){                        data[m]--;                        System.out.print((char)m);                    }                }            }        }    }
} 

第二题、

[编程|200分] 跳跃比赛
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++ 32768K,其他语言 65536K
题目描述
给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数的值表示你从这个位置可以跳跃的最大长度。计算如何以最少的跳跃次数跳到最后一个数。
输入描述:
第一行表示有多少个数n
第二行开始依次是1到n个数,一个数一行
输出描述:
输出一行,表示最少跳跃的次数。
示例1
输入7
2
3
2
1
2
1
5
输出3
说明7表示接下来要输入7个正整数,从2开始。数字本身代表可以跳跃的最大步长,此时有2种跳法,为2-2-2-5和2-3-2-5都为3步
思路:思路很重要,第一眼看过来,这题用动态规划来解,印象中这题在leetcode中遇到过,不知道还是在牛客网叶神视频中看过,一验证果不其然。其实也很简单,申明一個數組,默認存很大的值,儅到相應的n步數需要修改時,用动态转移公式
R[i+j]=Math.min(R[i+j],R[i]+1); 来替换数组里面值。
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int MAX = 100;int[] A = new int[MAX];int[] R = new int[MAX];int n;int INF=(1<<21); n = scan.nextInt();for(int i = 0 ; i <n ;++i){A[i] = scan.nextInt();R[i] = INF;}R[0] = 0;    for(int i = 0; i < n; ++i){    for(int j = 1; j <= A[i] && i + j < n; ++j){    R[i+j]=Math.min(R[i+j],R[i]+1);  }    }  System.out.println(R[n-1]);}}

第三题、
[编程|300分] 大数相乘
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++ 32768K,其他语言 65536K
题目描述
编写”长整数相乘”程序,实现两个任意长度的长整数(正数)相乘,输出结果.输入描述:
第一行输入数字A的字符串,字符范围(0~9),第二行输入数字B的字符串,字符范围(0~9)。
输出描述:
输出A、B俩数相乘的结果,结果为字符串。
示例1
输入1234
4321
输出5332114
说明第一排数字*第二排数字

import java.util.Scanner;   
public class Main{             public static void main(String[] args){               Scanner scan=new Scanner(System.in);               String numStr1=scan.next();               String numStr2=scan.next();                          int[] intNum1=changetoArray(numStr1);               int[] intNum2=changetoArray(numStr2);                          multiply(intNum1,intNum2);       }              public static int[] changetoArray(String numStr){               int length=numStr.length();               int[] intNum=new int[length];               for(int i=0;i<length;i++)               intNum[length-i-1]=Integer.parseInt(String.valueOf((numStr.charAt(i))));              return intNum;       }              public static void multiply(int[] num1,int[] num2){               int length1=num1.length;               int length2=num2.length;               int[] result=new int[length1+length2];               for(int i=0;i<length1;i++)               for(int j=0;j<length2;j++){                   int temp = result[i + j] + num1[i] * num2[j];                   result[i + j] = temp % 10;                   result[i + j + 1] += temp / 10;                   if (result[i + j + 1] > 10) {                       result[i + j + 1] %= 10;                       result[i + j + 2]++;                   }               }                  StringBuffer sb=new StringBuffer();               for(int i=result.length-1;i>=0;i--)              if(i==result.length-1 && result[i]==0){            	            }else{            	sb.append(result[i]);             }              System.out.println(sb.toString());         }  } 

这篇关于华为2018实习春招笔试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103496

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

华为 HCIP-Datacom H12-821 题库 (13)

有需要题库的可以看主页置顶 1.可以携带外部路由的 tag 标签信息的是以下哪一类 LSA? A、4 类 LSA B、5 类 LSA  C、3 类 LSA  D、2 类 LSA 答案:B 解析: 暂无解析 2..两台路由器直连,并设定网络类型为 p2p 建立OSPF 邻居。那么两台路由器传输 OSPF 报文的目的 IP 地址是以下哪一项? A、使用组播地址 224.0.0.6 B

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

实习项目|苍穹外卖|day7

缓存菜品 1.根据原型进行需求分析与设计(接口文档) 2.根据接口设计DTO(redis数据类型选取) 3.编码controller-》service-》mapper @GetMapping("/list")@ApiOperation("根据分类id查询菜品")public Result<List<DishVO>> list(Long categoryId) {//判断缓存

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答