2019年华为春招实习笔试题

原创 2018年04月16日 16:33:44

1.字符串重排

题目描述  

给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。

【温馨提示】 
(1).原始字符串中仅可能出现“数字”和“字母”; 
(2).请注意区分字母大小写。 
输入描述: 
eeefgghhh 
输出描述: 
efghegheh 
示例1 
输入 
eeefgghhh 
输出 

efghegheh

分析:简要步骤分析:

            1.从字符串头开始,将每个字符取出作为键值,装入TreeMap集合,字符出现的次数作为TreeMap的值

            2.遍历TreeMap集合,找到字符重复最多的次数,计为count

            3.遍历集合count次,输出集合的键值,每次输出后,将键对应的值减去1

代码实现:

import java.util.Scanner;
import java.util.TreeMap;

public class Main {
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		while(in.hasNext())
		{
			String str = in.next();
			char[] ch = str.toCharArray();
			TreeMap<Character,Integer> treeMap = new TreeMap<>();//采用TreeMap,是因为可以用它排序
			for(int i=0;i<ch.length;i++)
			{
				if(treeMap.containsKey(ch[i]))
					treeMap.put(ch[i], treeMap.get(ch[i])+1);
				else
					treeMap.put(ch[i],1);
			}
			
			int count = 0;
			for(char c:treeMap.keySet())    //获取重复最多的字符的重复次数
			{
				if(treeMap.get(c)>count)
					count = treeMap.get(c);
			}
			
			for(int i=0;i<count;i++)
			{
				for(char c:treeMap.keySet())
				{
					if(treeMap.get(c)>0)    //有些字符已经为0了,就不在输出了
					{
						treeMap.put(c, treeMap.get(c)-1);
						System.out.print(c);
					}
				}
			}
			System.out.println();

		}
	}
}

2.跳跃比赛

题目

题目描述 
给出一组正整数,你从第一个数向最后一个数方向跳跃,每次至少跳跃1格,每个数的值表示你从这个位置可以跳跃的最大长度。计算如何以最少的跳跃次数跳到最后一个数。

输入描述: 
第一行表示有多少个数n 
第二行开始依次是1到n个数,一个数一行 
输出描述: 
输出一行,表示最少跳跃的次数。 
示例1 
输入 








输出 

3

分析:这是道题可以用贪心算法,找一个简单的例子,[2,3,1,1,4],从下标为0可以选择跳到下标为1或者下标为2的位置,对于是跳下标为1的位置还是跳到下标为2的位置,这时采用的方式是考虑,在跳到某个下标后从这个下标可以跳到更远的位置,例如,在下标为1处,下次可以跳到下标为4处(1+a[1]=4),而在下标为2的位置,下次可以跳到(2+a[2]=3),那么就选择从下标为0跳到下标为1处,后面的跳法依旧。

代码实现:
class TanXin
{
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		while(in.hasNext())
		{
			int n = in.nextInt();
			int[] nums = new int[n];
			for(int k=0;k<n;k++)
			{
				nums[k] = in.nextInt();
			}
			int i = 0;
			int j = 0;        //j用来记录从下标为j,可以跳到更远的位置
			int max = 0;      
			int count= 0;     //记录跳跃的次数
			while(i+nums[i]<nums.length)
			{
				for(int k=i;k<=i+nums[i];k++)
				{
					if(k+nums[k]>max)
					{
						j = k;
						max = k + nums[k];
					}
				}
				i = j;
				count++;
				max = 0;
			}
			System.out.println("count: "+count);
		}
	}
}


京东2016春招(实习)笔试+编程题

岗位:数据挖掘、机器学习、算法、模式识别 京东这套题出的耗时可以的,难度不是特别大,编程题感觉非常难理解,光看题干就看了老半天,当时简直吓尿了,一琢磨其实很简单。我只能回忆一部分内容,25选择+2编...
  • chixujohnny
  • chixujohnny
  • 2016年04月09日 21:17
  • 1592

2017京东春招实习生招聘编程题

题目描述: 有一条很长的队伍,队伍里面一共有n个人。所有的人分为三类:警察,小偷和普通人。 将队伍里面的人从前到后由1到n编号,编号为i的人与编号为j的人的距离为i与j之差的绝对值。 每一个警察有一个...
  • u013172314
  • u013172314
  • 2018年03月17日 20:31
  • 129

华为2018春招笔试题

华为2018春招笔试(3月21日) 题目一 最长数字字符串 给定一个字符串,输出字符串中最长的数字串,并把这个数字串的长度输出。 请一个在字符串中找出连续最长的数字串,并把这个串的长度...
  • songbinxu
  • songbinxu
  • 2018年03月21日 23:32
  • 524

华为2016春招机试题

华为2016春招实习生的在线机试题目解析
  • sysu_lsq
  • sysu_lsq
  • 2016年03月27日 13:14
  • 517

腾讯2016春招(实习)笔试

有些不会的或者不太确定的题我截图留下来了,自己保存做个参考吧,依旧是算法工程师岗,感觉鹅厂更注重统计学的东西,大题很开放感觉难度不大但是想写好了不容易。 第二个大题是吐槽一下你使用过的一个推荐算法并...
  • chixujohnny
  • chixujohnny
  • 2016年04月03日 12:03
  • 692

华为实习生笔试题目

题目描述:计算字符串最后一个单词的长度,单词以空格隔开。 输入描述:一行字符串,非空,长度小于5000。输出描述:整数N,最后一个单词的长度。#include&lt;iostream&...
  • suijue9389
  • suijue9389
  • 2018年03月31日 21:55
  • 103

网易春招笔试题

网易2017年3月26日中午的实习生招聘里面有道编程题,大概是说有一个围棋格子,每一个块为白色或黑色,小易会找出列方向上颜色相同并且连着的区域,并最长,将其涂为红色。第一行输入棋盘的大小,如3,后面依...
  • wkk15903468980
  • wkk15903468980
  • 2017年03月27日 00:13
  • 333

2018年华为实习生招聘三道编程题

第一题:给定一个字符串,输出字符串中连续最长的数字串,并把这个最长数字串的长度输出来,中间以逗号(,)隔开。如果存在长度一样的的连续数字串,返回最后一个连续数字串。样例:abcd12345ed125s...
  • youlikaste
  • youlikaste
  • 2018年03月22日 10:22
  • 710

2017春招笔试题

2017年3月春招以来,陆续参加了不少公司的技术在线笔试,题型各异,有的题目现在还没解决,现将能回忆起的记录一下。   一、空间有15个点,构成立体多面体,最多20个面,问有多少个点可以忽略。 ...
  • ljheee
  • ljheee
  • 2017年05月31日 22:21
  • 666
收藏助手
不良信息举报
您举报文章:2019年华为春招实习笔试题
举报原因:
原因补充:

(最多只允许输入30个字)